根据另一个字段更改查找的行来源

时间:2016-04-15 14:16:15

标签: sql database ms-access

我正在尝试通过从单独的查找框中选择表名来定义查找字段的行源。

产品目录包含约41个产品组,然后进一步划分为类型,其中一些类型超过100种。

我有一个产品组表(41组),然后每个产品组(41个表)都有一个单独的类型表。所有类型表名称都与产品组表格中显示的完全相同。我希望能够从查找框中选择产品组,然后在单独的查找框中从相应的表中选择类型。

下面的图片应该有助于了解我的目标。

设置我的第一个查询框:

enter image description here

设置我的第二次查找:

enter image description here

这可能,如果有的话,任何人都可以伸出援助之手吗?

感谢。

1 个答案:

答案 0 :(得分:0)

总结一下,您需要一个包含TypeID,GroupID和任何其他“Type”相关字段的表。

您的Group ComboBox应该将ID字段作为其第一列(使过滤更容易),因此您的控制源应该是:

SELECT [ProductGroup]![GroupID], [ProductGroup]![ProductGroup] 
FROM [ProductGroup]
ORDER BY [ProductGroup];

然后在“格式”选项卡上的“组合框”的属性中,使列宽为“”x“以隐藏ID字段。

Type ComboBox的控件源应为:

SELECT [NewTypeTable]![TypeID], [NewTypeTable]![TypeName]
FROM [NewTypeTable]
WHERE [NewTypeTable]![GroupID] Like [Forms]![frmWithComboBoxName]![CboPGroup]
ORDER BY [NewTypeTable]![TypeName];

同样,如果要隐藏ID字段,请将第一列宽度设为0“。

您还应该在afterUpdate() CboPGroup事件中重新查询第二个组合框,它将根据CboPGroup中的新选择过滤第二个组合框。代码(VBA)将是:

Forms!frmWithComboBoxName!CboType.Requery