如何基于MS Access中的另一个组合框填充组合框

时间:2016-12-08 21:10:24

标签: vba ms-access combobox access-vba

我正在尝试根据另一个组合框的选择将项添加到组合框中。

我有一个组合框,显示所有模具编号的总列表。每个芯片编号具有与其相关的特定数量的空腔。示例模具1111具有4个腔。腔的数量从1到8不等。我希望第二个组合框填充数字1到X,其中X是该Die数的腔数。

我在考虑做一个看起来像这样的for循环。

Private Sub cmbSection_Change()

    Dim Cavities
    Cavities = Me.cmbSection.Column(0)

    For intI = 1 To (Cavities)
        cmbCavities.AddItem (intI)
Next intI
End Sub

编辑: 我真正想要的是如何在组合框中选择模具时参考每个模具的模腔数量。因为combobox1.value只会返回Die#的值。我假设,因为combobox1填充了一个查询,该查询返回die#和我可以引用combobox1.cavities的空洞数量以及如何将项目添加到第二个组合框。

2 个答案:

答案 0 :(得分:0)

听起来你正试图在你的组合框中实现级联效果。把它放在第一个ComboBox的After_Update上。

Private Sub Form_AfterUpdate()

Me.SecondComboBoxID.RowSource = "SELECT CavityID, CavityName " _
                               & "FROM CavityTableName " _
                               & "WHERE DieID = " & Nz(Me.FirstComboBoxID) _
                               & "ORDER BY CavityName"

End Sub

答案 1 :(得分:0)

我找到了答案。我使用原始方法使用for循环来填充列表。这是整个方法。按预期工作。

Private Sub cmbSection_Change()

    ' Clears Current Items In Combo Box
    cmbCavities.RowSource = ""

    'Declaring and setting proper variables
    Dim Cavities As Integer
    Cavities = CInt(Me.cmbSection.Column(1))
    Dim intI As Integer

    ' Loop
    For intI = 1 To (Cavities)
        Me.cmbCavities.AddItem (intI)
    Next intI

End Sub