我在数据表布局中的MS Access 2013中有一个视图。该视图基于单个SQL Server 2012表,并且是可编辑的。
我在数据表视图中有两列链接到用户可以选择值的下拉列表。根据第一列的值,我希望在符合第一列条件的值子集上过滤第二列。
每列的查找值来自两个表(来自SQL Server 2012,但在MS Access中存储为视图):
表1 :(数字是“ID”,描述是“标签”)
表2:
预期的功能是,如果用户在第一列中选择“打开”(下拉列表基于表1中的值),则第二列将仅显示表2中的ID#1和#2作为有效选择(即,过滤第二列的下拉列表,其中Table1ID = 1)。
如果已填写记录(例如,第1列具有ID 1且第2列具有ID 2)并且用户编辑该记录,例如在第1列中选择ID 2,则第2列将删除无效组合(例如,第2列的ID 2不再有效,因为它不是表1所选ID的子集的一部分,现在为2,从1更改。
我的问题在上面,但为了清楚起见,我按照我想要的方式查看了SQL视图和数据表视图,并使下拉列表彼此独立工作(尽管第2列显示了表2中的所有值),我只需要帮助将两个下拉列表关联/链接在一起。
提前感谢您的协助。
答案 0 :(得分:1)
假设您通过下拉菜单引用了Access中的ComboBox。要使它们彼此依赖,您需要修改第二个下拉列表的行源。转到表单的设计视图,单击ComboBox并转到Propoerty Sheet上的Data选项卡。在行源旁边会有一个带有3个点(...)的图标,点击它。
它将打开一个查询编辑器窗口。在查询编辑器中选择您的表并将列添加到下面的字段列表中。然后你需要定义一个标准,在你的情况下,如果我正确阅读将是一个像Like & "*" & Forms![FormName]![Combo1] & "*"
现在这将确保combobox2依赖于ComboBox1。现在转到ComboBox 1属性并转到事件选项卡,并在AfterUpdate事件中添加以下代码。
me.Combo2.Requery
Me.Combo2.value = ""