1

我只需要重新查询表单中的特定组合框,我想在数组中拥有它。组合框不按顺序排列,我不想遍历表单中的所有组合框。

我可以比较它的最好方法是在 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
4

2 回答 2

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
于 2013-10-27T23:11:48.573 回答
0

对于轻量级的方法,您可以将组合框名称放在逗号分隔的字符串中,Split()将字符串放入数组中,然后循环遍历数组成员。

Const cstrNames As String = "cbo1,cbo4,cbo7"
Dim varName As Variant

For Each varName In Split(cstrNames, ",")
    Me.Controls(varName).Requery
Next

如果您想在表单中的其他过程之间共享该列表,您可以使字符串成为模块级常量,而不是在每个过程中再次声明它。

于 2013-10-28T00:01:05.510 回答