MS Access 2013 - 在数据表视图中依赖于另一个下拉列表

时间:2015-03-30 11:28:55

标签: sql-server ms-access dependencies ms-access-2013 datasheet

我在数据表布局中的MS Access 2013中有一个视图。该视图基于单个SQL Server 2012表,并且是可编辑的。

我在数据表视图中有两列链接到用户可以选择值的下拉列表。根据第一列的值,我希望在符合第一列条件的值子集上过滤第二列。

每列的查找值来自两个表(来自SQL Server 2012,但在MS Access中存储为视图):

表1 :(数字是“ID”,描述是“标签”)

  1. 打开
  2. 动作
  3. 表2:

    1. Met Criteria(属于Table1ID#1)
    2. 添加了用户(属于Table1ID#1)
    3. 已发送以供审核(属于Table1ID#2)
    4. 收到的响应(属于Table1ID#2)
    5. 最终确定(属于Table1ID#2)
    6. 不符合标准(属于Table1ID#3)
    7. 流程已完成(属于Table1ID#3)
    8. 预期的功能是,如果用户在第一列中选​​择“打开”(下拉列表基于表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中的所有值),我只需要帮助将两个下拉列表关联/链接在一起。

      提前感谢您的协助。

1 个答案:

答案 0 :(得分:1)

假设您通过下拉菜单引用了Access中的ComboBox。要使它们彼此依赖,您需要修改第二个下拉列表的行源。转到表单的设计视图,单击ComboBox并转到Propoerty Sheet上的Data选项卡。在行源旁边会有一个带有3个点(...)的图标,点击它。

它将打开一个查询编辑器窗口。在查询编辑器中选择您的表并将列添加到下面的字段列表中。然后你需要定义一个标准,在你的情况下,如果我正确阅读将是一个像Like & "*" & Forms![FormName]![Combo1] & "*"

现在这将确保combobox2依赖于ComboBox1。现在转到ComboBox 1属性并转到事件选项卡,并在AfterUpdate事件中添加以下代码。

me.Combo2.Requery

Me.Combo2.value = ""