我有一个非常简单的应用程序,有两个表ParentTable
和ChildrenTable
。表中的每个子项都有父项的外键(父子关系是一对多)。
当我显示包含父信息的表单时,我想显示一个包含所有父项子项的ListBox。
我已经有了一个显示所有子项的ListBox,但我不知道如何更改查询,以便我只看到活动的父项子项(我现在正在查看其表单的父项)。它是这样的:
SELECT ChildrenTable.IdNumber, ChildrenTable.FirstName, ChildrenTable.LastName FROM ChildrenTable ORDER BY [FirstName];
我想我正在寻找类似的东西:
WHERE ChildrenTable.ParentIdNumber == <active parent>.IdNumber
答案 0 :(得分:4)
名为frmParent的表单包含一个名为txtIdNumber的文本框控件,它显示来自ParentTable的IdNumber。
然后查询列表框rowsource可以引用txtIdNumber中的值:
SELECT c.IdNumber, c.FirstName, c.LastName
FROM ChildrenTable AS c
WHERE c.ParentIdNumber = Forms!frmParent!txtIdNumber
ORDER BY c.FirstName;
您可以在frmParent中移动通过ParentTable记录时更新列表框,方法是使用此代码填写表单的“On Current”事件:
Private Sub Form_Current()
Me.YourListBoxName.Requery
End Sub