我有以下两个表,第一个叫做Projects,第二个叫做Parts:
然后我有一个表单(我们称之为表单1),它使用Projects作为其记录源,其子表单将Projects表上的Project链接到Parts表上的Project,并仅显示与所选Projects记录源关联的项目,像这样:
现在,我希望能够做的是在Form 1上有一个下拉列表,只有子窗体上列出的Items可以选择,但我似乎无法找到执行此操作的SQL代码。
我当前的下拉列表使用以下代码,但当然这仅显示所有项目,而不是仅显示在子表单上的项目:
SELECT [Parts].[ID], [Parts].[Item] FROM Parts ORDER BY [Item];
我想我想做的就是这样,但显然使用了正确的语法:
SELECT [Parts].[ID], [Parts].[Item] WHERE [Parts].[ID]= & Me![ID] FROM Parts ORDER BY [Item];
答案 0 :(得分:1)
将它放在表单的Load事件中:
Me!MyCombo.RowSource = "SELECT [Parts].[ID], [Parts].[Item] FROM Parts WHERE [Parts].[ID]= '" & Me![ID] & "' ORDER BY [Item];"
Me!MyCombo.Refresh
如果Parts.ID是数字字段,则需要从中取出单引号,如果它是文本字段,则将它们保留。
答案 1 :(得分:1)
使用表单的“当前”事件来设置组合的RowSource属性,因此每当表单中的活动行发生更改时,您都会在组合中获得更新列表。
Me!MyCombo.RowSource = "SELECT Project, Item FROM Parts WHERE Project = '" & Me.Project & "' ORDER BY Item"
抱歉,user2174085:这应该是您回答的评论,但我没有选项可以提供评论。