Ms access 选择列表框项目将更新另一个列表框

Ms access 选择列表框项目将更新另一个列表框,ms-access,Ms Access,考虑以下关系: 这是一个包含节点列表框和标签列表框的表单: 选择标签时,我希望节点列表框仅显示与该标签关联的节点 设置此设置的好方法是什么?在标签列表的BeforeUpdate事件中插入如下内容: Me.NodeList.RowSource="SELECT * FROM Nodes INNER JOIN Nodes_Labels ON Nodes.ID = Nodes_Labels.Node WHERE (Nodes_Labels.Label = " & Me.LabelList.v

考虑以下关系:

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

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


设置此设置的好方法是什么?

在标签列表的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

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


Johanes的回答涉及每次触发更新之前的
节点列表框
事件时更新
节点列表框.RowSource

另一种方法是为
节点列表框
提供一个引用
标签列表框
的静态
行源

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

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

Private Sub LabelsListBox_Click()
    NodesListBox.Requery
End Sub

点击可能是更好的活动。您还必须确保在切换到另一个数据集后执行代码。如果你使用这种方法或我的方法,我认为这与性能预测没有太大区别。我自己一开始使用VBA,就试图在代码中保留尽可能多的内容。当您稍后返回项目时,更容易发现数据更改的位置。
Private Sub LabelsListBox_Click()
    NodesListBox.Requery
End Sub