我只需要重新查询表单中的特定组合框,我想在一个数组中使用它。组合框不按顺序排列,我不想遍历表单中的所有组合框。
我可以将它与之比较的最佳方法是在Excel中循环查看指定的工作表:
Dim ws As Worksheet
For Each ws In Worksheets("Sheet1", "Sheet4", "Sheet7")
' do something
Next ws
我无法弄清楚如何在Access中执行此操作。我尝试过这种变体:
For Each Control In Me.Controls(Me.cbo1, Me.cbo4, Me.cbo7)
Control.Requery
Next Control
答案 0 :(得分:0)
有几种方法,但您可以将它们放在Collection
:
Private Sub Command7_Click()
Dim coll As New Collection
Dim item As ComboBox
coll.Add Me.Combo1
coll.Add Me.Combo5
coll.Add Me.Combo3
For Each item In coll
item.Requery
Next item
End Sub
答案 1 :(得分:0)
对于轻量级方法,您可以将组合框名称放在以逗号分隔的字符串中,将Split()
字符串放入数组中,然后循环遍历数组成员。
Const cstrNames As String = "cbo1,cbo4,cbo7"
Dim varName As Variant
For Each varName In Split(cstrNames, ",")
Me.Controls(varName).Requery
Next
如果要在表单中的其他过程之间共享该列表,可以使字符串成为模块级常量,而不是在每个过程中再次声明它。