0
我已經建立了一個Excel VBA形式,它能夠基於生成一個唯一的ID號:「記錄數」(即有多少非空細胞的範圍內),一封或多封信函,財政年度(即17財政年度2016/17)和另一封信。創建基於關閉一個ID號表單字段 - 訪問
的代碼,財政年度,和其他字母都是基於來自用戶的輸入,而且數量顯然是自動產生的,導致以下格式的代碼:001-A17S
以下是Excel中代碼產生上述結果:
Application.ScreenUpdating = False
Worksheets("Project Tracking").Activate
DeliveryPartnerCode = lbl_DeliveryPartnerCode
FinancialyearString = txt_FinancialYear.Text
Financialyear = Right(FinancialyearString, 2)
nonfilledCells = WorksheetFunction.CountA(Range("A5:A100"))
AWRNumber = nonfilledCells + 1
AWRNumberstring = CStr(AWRNumber)
If (AWRNumber < 9) Then
AWRPrefix = "00"
ElseIf (AWRNumber < 99) Then
AWRPrefix = "0"
Else
AWRPrefix = ""
End If
If cmb_State.ListIndex = 0 Then
State = "S"
ElseIf cmb_State.ListIndex = 1 Then
State = "N"
ElseIf cmb_State.ListIndex = 2 Then
State = "Q"
ElseIf cmb_State.ListIndex = 3 Then
State = "V"
ElseIf cmb_State.ListIndex = 4 Then
State = "A"
End If
lbl_AWRReference = AWRPrefix & AWRNumberstring & "-" & DeliveryPartnerCode & Financialyear & State
Application.ScreenUpdating = True
這bastardised Excel電子表格不再適合爲我所用,我已經決定在Access中創建一個適當的數據庫。
我已經設置了相應列的表(自動編號爲000面罩),財政年度一個文本框和下拉框的代碼和最後一個字母。但我現在還不知道如何將所有這些連接在一起以提供正確的格式,將結果放置到窗體上的文本框中。我不能使用表達式構建器(不允許我選擇自動編號),並且我找不到用於編寫VBA代碼來執行類似上述Excel VBA代碼的計算的語法或邏輯。
什麼是要達到什麼我正在尋找最好的方式?我承認它已經超過5年,因爲我已經與Access發揮,所以我有點模糊:P
感謝。
您不應該使用自動編號來執行此類任務。搜索SO for _Custom Autonumber_ - 大量命中。 – Gustav
你想存儲這個或只是顯示它(你不應該存儲它,如果它可以簡單地計算)?要在表單上顯示它,我會在底層表單查詢中創建它。最後也是最重要的 - 你嘗試過什麼? – Minty
@Gustav我現在認識到,不過,我仍然不知道如何讓一個DMAX計算出的數字,以及用戶提供成需要的格式其它數據 - 你有什麼建議 – scb998