Циклическое перемещение по значениям в поле списка доступа MS Access
У меня есть окно списка, которое заполняется различными наборами данных на основе пользовательских выборов.
Как я могу перебирать любые значения, которые могут быть в списке? Это оператор For Each, или что?
Ответ 1
Вы можете сделать цикл For, чтобы исследовать каждую строку в списке, и делать все с выбранными строками. В этом примере я отображу второй столбец из выбранных элементов в списке lstLocations. (Нумерация столбцов начинается с нуля.)
Private Sub cmdShowSelections_Click()
Dim lngRow As Long
Dim strMsg As String
With Me.lstLocations
For lngRow = 0 To .ListCount - 1
If .Selected(lngRow) Then
strMsg = strMsg & ", " & .Column(1, lngRow)
End If
Next lngRow
End With
' strip off leading comma and space
If Len(strMsg) > 2 Then
strMsg = Mid(strMsg, 3)
End If
MsgBox strMsg
End Sub
Примечание. Я предположил, что вы хотите, чтобы выбранные элементы были в списке. Если вы хотите, чтобы все элементы были выбраны или нет, вы можете использовать .ItemData как @DavidRelihan . Однако в этом случае вы можете получить их из списка .RowSource.
Ответ 2
Вот как вы перебираете ListBox:
Dim i as Integer
For i = 0 to Me.ListBoxName.ListCount -1
'Access each item with
'Me.ListBoxName.ItemData(i)
Next i