2010-05-28 27 views
10

Tôi có một hộp danh sách chứa các bộ dữ liệu khác nhau dựa trên lựa chọn của người dùng.đi xe đạp qua các giá trị trong hộp danh sách MS Access

Làm cách nào để chu kỳ qua bất kỳ giá trị đã cho nào có thể nằm trong hộp danh sách? Đây có phải là tuyên bố For Each hay không?

+0

Đừng quên rằng bạn có thể có hộp danh sách chọn nhiều và sử dụng thuộc tính Đã chọn nếu không gian trên biểu mẫu trở thành vấn đề. – Fionnuala

Trả lời

16

Bạn có thể làm bạn một vòng lặp For để kiểm tra mỗi hàng trong ListBox, và làm bất cứ điều gì với các hàng được chọn. Trong ví dụ này, tôi hiển thị cột thứ hai từ các mục đã chọn trong hộp danh sách lstLocations. (Đánh số cột bắt đầu bằng số không.)

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 

Lưu ý Tôi cho rằng bạn muốn các mục đã chọn từ hộp danh sách. Nếu bạn muốn tất cả mục, được chọn hay không, bạn có thể sử dụng .ItemData làm @DavidRelihan suggested. Tuy nhiên, trong trường hợp đó, bạn có thể lấy chúng từ hộp danh sách .RowSource.

+0

cảm ơn Hans! đã cho tôi một chút nhưng tôi đã nhận nó làm việc. cảm ơn! – Justin

20

Đây là cách bạn lặp qua các ListBox:

Dim i as Integer 

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

cảm ơn! điều này cũng làm việc tốt! – Justin

Các vấn đề liên quan