连接 2 个组合框

Linking 2 combo boxes

我想知道创建组合框的最佳方法,该组合框link用于选择另一个组合框。例如,在组合框 1 中选择 'fruits',组合框 2 中的选项为芒果、橙子和奇异果。当用户在组合框 1 中选择 'vegetables' 时,在组合框 2 中选项有胡萝卜、朝鲜蓟和西红柿。两个组合框都应 linked 到同一个 table 称为 Produce。

我在构建支持组合框 1 的查询时没有遇到问题,但不明白我如何才能link选择什么来支持组合框 2 的查询。

有几种方法可以做到这一点,但最简单的方法也是我最常使用的方法是在 Change 事件(或 AfterUpdate, 取决于你的需要) Combobox1 被解雇了。

示例:

我有两张桌子

Animals
1  Dog
2  Cat
3  Mouse
4  Rabbit

Cars
1  Audi
2  BMW
3  Ferrari
4  Porsche
5  McLaren

在表单上我有两个组合框,第二个是基于第一个的选择,它只包含两个选项:动物、汽车。

示例代码:

Private Sub Combo1_Change()
    Dim cmb1 As ComboBox: Set cmb1 = Me.Combo1
    Dim cmb2 As ComboBox: Set cmb2 = Me.Combo2

    Select Case cmb1.Value
        Case "Animals"
            cmb2.RowSource = "Animals" ' Table name Animals
        Case "Cars"
            cmb2.RowSource = "SELECT TOP 3 * FROM Cars" ' SQL command to table Cars
        Case Else
            cmb2.RowSource = "Animals"
    End Select
End Sub

现在,每次 Combo1 中的值更改时,Combo2 的行源也会更改。

注意:您需要在表单加载时根据 Combo1 中的值设置默认行源 Combo2,以便 Combo2 在启动时不为空。