0

我有以下两个表,第一个称为 Projects,第二个称为 Parts:

在此处输入图像描述

在此处输入图像描述

然后,我有一个表单(我们称之为表单 1),它使用 Projects 作为其记录源,并带有一个子表单,该子表单将 Projects 表上的 Project 链接到 Parts 表上的 Project,并仅显示与所选 Projects 记录源关联的项目,如下所示:

在此处输入图像描述

现在,我想做的是在表单 1 上有一个下拉菜单,其中只有子表单上列出的项目可供选择,但我似乎找不到执行此操作的 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]; 
4

2 回答 2

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 是 Numeric 字段,则需要去掉单引号,如果是 Text 字段,则保留它们。

于 2013-06-19T00:37:43.403 回答
1

使用表单的“Current”事件来设置组合的 RowSource 属性,因此只要表单中的活动行发生更改,您就会在组合中获得更新的列表。

Me!MyCombo.RowSource = "SELECT Project, Item FROM Parts WHERE Project = '" & Me.Project & "' ORDER BY Item"

抱歉,user2174085:这应该是对您回答的评论,但我没有提供评论的选项。

于 2013-06-19T06:47:05.350 回答