带有Rowsource的ListBox,用于VBA Access中的其他ListBox的多选择

时间:2013-07-30 20:14:42

标签: access-vba

我有两个列表框:listbox1和listbox2。 我如何获得listbox2.rowsource = filter filter等于listbox1中的多个选项?enter image description here

1 个答案:

答案 0 :(得分:1)

您可以遍历listbox1中的所选项目,并将它们连接成一个SQL字符串,以便在listbox2上提供rowsource。

我看不到您发布的图片,但我写了一个片段(只是“空中编码”,可能不起作用)应该给你一个想法。

Private Sub listbox1_AfterUpdate()

Dim itm as Variant, sql as String

For Each itm In listbox1.ItemsSelected
    sql = sql & " OR field1 = '" & listbox1.ItemData(itm) & "'"
Next

sql = "SELECT field FROM table WHERE " & Mid(sql, 5)

listbox2.RowSourceType = "Table/Query"
listbox2.RowSource = sql

End Sub

您也可以尝试这种方式:

Dim values as String, itm as variant

For Each itm In listbox1.ItemsSelected
    values = values & """" & listbox1.ItemData(itm) & """;"
Next

listbox2.RowSourceType = "Value List"
listbox2.RowSource = values