我對VBA很新,所以試圖讓我的頭與C#的區別。 我目前有一個小組來進行批量導入,只能從數據表子表單中選擇一行/記錄。訪問2010 For Form.Controls上的每個人
Private Sub cmdImport_Click()
Dim strBatchID As String
On Error GoTo NoBatch
Me.subClaimsToProcessLookup.Form.Controls.Item("txtBatchID").SetFocus
strBatchID = Me.subClaimsToProcessLookup.Form.Controls.Item("txtBatchID").Text
GoTo ContinueImport
NoBatch:
MsgBox "Please select a row", vbOKOnly + vbQuestion, Me.Caption
Exit Sub
ContinueImport:
If Not IsNumeric(strBatchID) Then
MsgBox "Please select a row", vbOKOnly + vbQuestion, Me.Caption
Exit Sub
End If
Dim lngUserID As Long
'...process continues here...
這隻會取其行的用戶已經選擇過程...現在用戶想簡單地處理從一個按鈕,點擊數據表中的所有行。
我想知道如果一個For Each可以爲此工作,而不必使用我不是很熟悉的記錄導航 (Move Next等),但For Each是一個簡單的概念,我來自C#。 如: 私人小組cmdImport_Click()
Dim strBatchID As String
On Error GoTo NoBatch
' Add loop here to go through each item in the datasheet view and process it.
For Each Me.subClaimsToProcessLookup.Form.Controls.Item("txtBatchID").Text in Me.subClaimsToProcessLookup.Form.Controls
Me.subClaimsToProcessLookup.Form.Controls.Item("txtBatchID").SetFocus
strBatchID = Me.subClaimsToProcessLookup.Form.Controls.Item("txtBatchID").Text
GoTo ContinueImport
Next
NoBatch: MsgBox 「請選擇一行」,vbOKOnly + vbQuestion,Me.Caption 「退出小組 持續
ContinueImport: 如果不則IsNumeric(strBatchID)然後 MsgBox 「請選擇一行」,vbOKOnly + vbQuestion,Me.Caption 「退出小組 持續 結束如果
Dim lngUserID As Long
....process continues here....
另外,如果一個For Each將正確地做到這一點,我是否正確設置了我的'Continue For'流程?
總之,我在尋找1)確認Form.Controls可以用作For Each中的集合; 和2),我已經把正確的流量控制(繼續)了的For Each
非常感謝您!否則我完全會過度設計這個循環。 – Brinky