选择列表框项会更新另一个列表框

时间:2014-11-30 20:44:28

标签: ms-access

考虑以下关系:

enter image description here

这是一个包含节点列表框和标签列表框的表单:

enter image description here

当我选择标签时,我希望节点列表框只显示与该标签关联的节点。

什么是设置它的好方法?

3 个答案:

答案 0 :(得分:1)

在标签列表的BeforeUpdate事件中插入如下内容:

Me.NodeList.RowSource="SELECT * FROM Nodes INNER JOIN Nodes_Labels ON Nodes.ID = Nodes_Labels.Node WHERE (Nodes_Labels.Label = " & Me.LabelList.value & ");"
Me.NodeList.Requery

答案 1 :(得分:1)

Johaness的回答涉及每次触发NodesListBox.RowSource NodesListBox事件时更新BeforeUpdate

另一种方法是为NodesListBox提供一个引用RowSource的静态LabelsListBox

此方法显示在以下查询编辑器屏幕截图中:

enter image description here

然后,LabelsListBox事件处理程序就是:

Private Sub LabelsListBox_Click()
    NodesListBox.Requery
End Sub

答案 2 :(得分:0)

这是我使用的事件处理程序(基于Johanness的回答):

Private Sub LabelsListBox_Click()

    NodesListBox.RowSource = _
        "SELECT Nodes.ID, Nodes.Title " & _
        "FROM Nodes INNER JOIN Nodes_Labels ON Nodes.ID = Nodes_Labels.Node " & _
        "WHERE Nodes_Labels.Label = " & LabelsListBox.Value & " ORDER BY Title;"

End Sub