将ListBox绑定到MS Access 2003中的查询

时间:2009-10-18 13:56:16

标签: sql ms-access

我有一个非常简单的应用程序,有两个表ParentTableChildrenTable。表中的每个子项都有父项的外键(父子关系是一对多)。

当我显示包含父信息的表单时,我想显示一个包含所有父项子项的ListBox。

我已经有了一个显示所有子项的ListBox,但我不知道如何更改查询,以便我只看到活动的父项子项(我现在正在查看其表单的父项)。它是这样的:

SELECT ChildrenTable.IdNumber, ChildrenTable.FirstName, ChildrenTable.LastName FROM ChildrenTable ORDER BY [FirstName];

我想我正在寻找类似的东西:

WHERE ChildrenTable.ParentIdNumber == <active parent>.IdNumber

1 个答案:

答案 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