将组合框值限制为另一个列值

时间:2016-02-11 11:10:11

标签: ms-access access-vba ms-access-2013

我是新手访问用户。我创建了一个从表中引入多个值的表单,我有一个列作为组合框。 我想要做的是将这些组合框限制在不同列的相同ro中的值。 示例:组合框列包含产品上的不同组件名称(红色瓶子,蓝色瓶子或红色帽子,蓝色帽子)我想限制组合框,因此当您查看不同的组件时,您只是看起来像是一个瓶盖清单,瓶子是瓶子清单。表中的另一列具有此值。

1 个答案:

答案 0 :(得分:0)

我创建了this mock-up,它根据来自其所在行的数据过滤组合框选项。

组合框的选项来自我创建的表格。此表有一个名为 ComponentName 的列,这是表单的用户将在组合框中看到的选项,但还有另一列名为 ComponentType ,这是什么稍后将用于匹配组合框所在的行。

enter image description here

这里是表格(设置为连续),其中包含一些要匹配的组件类型和我们的组合框:

enter image description here

从组合框中挑选时,它会将行的组件类型所需数据与组合框选项下方的表格相匹配,并仅在组合框中显示匹配组件类型:

enter image description here

为实现此目的,已设置组合框的Row Source属性,以便在WHERE子句中将其限制为 ComponentTypeNeeded 字段中的任何数据对于表单上的同一行:

SELECT [tblComponents].[ComponentID], [tblComponents].[ComponentType], [tblComponents].[ComponentName] FROM tblComponents WHERE [tblComponents].[ComponentType] = [ComponentTypeNeeded] ORDER BY [ComponentName];

然后我设置了组合框的Column Widths属性,以便只有 ComponentName 列显示在组合框中(其他2个被设置为隐藏宽度为0cm):

enter image description here

希望这能为您的项目提供一些指示:)