考虑以下关系:
这是一个包含节点列表框和标签列表框的表单:
当我选择标签时,我希望节点列表框只显示与该标签关联的节点。
什么是设置它的好方法?
答案 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
。
此方法显示在以下查询编辑器屏幕截图中:
然后,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