链接2个组合框

时间:2015-04-25 17:29:36

标签: access-vba ms-access-2010

我想知道创建一个组合框的最佳方法,该组合框链接到另一个组合框的选择。例如,在组合框1中选择' fruits',组合框2中的选项是芒果,橙和猕猴桃。当用户在组合框1中选择蔬菜' ,在2号组合框中,选项是胡萝卜,朝鲜蓟和番茄。两个组合框都应链接到名为Produce的同一个表。

我无法构建查询以支持第一个组合框,但不了解如何将所选内容链接到支持组合框2的查询。

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点,但最简单的方法和我主要使用的方法是在Row Source事件(或Change时为Combobox2设置不同的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在启动时不为空。