2010-05-28 52 views
10

我有一個列表框,根據用戶選擇填充不同的數據集。循環訪問MS Access列表框中的值

如何循環顯示可能在列表框中的任何給定值?這是一個For Each聲明,還是什麼?

+0

不要忘記,如果表單上的空間成爲問題,您可以擁有多選列表框並使用Selected屬性。 – Fionnuala 2010-05-29 08:12:30

回答

16

你可以做你一個For循環檢查在列表框中的每一行,做任何被選擇的行。在此示例中,我將顯示列表框中選定項目的第二列。 (列編號從0開始)。

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 suggested。但是,在這種情況下,您可以改爲從列表框.RowSource中獲取它們。

+0

感謝漢斯!花了我一下,但我得到了它的工作。謝謝! – Justin 2010-05-29 11:13:38

20

這裏是你通過列表​​框如何遍歷:

Dim i as Integer 

For i = 0 to Me.ListBoxName.ListCount -1 
    'Access each item with 
    'Me.ListBoxName.ItemData(i) 
Next i 
+0

謝謝!這工作得很好也! – Justin 2010-05-29 11:14:38