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

MS Access 2013 - One dropdown dependent on another in datasheet view

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

我在数据表视图中有两列链接到下拉列表,用户可以在其中 select 值。基于第一列的值,我希望在满足第一列中条件的值子集上过滤第二列。

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

Table 1:(编号是 "ID" 描述是 "label")

  1. 打开
  2. 动作
  3. 关闭

Table 2:

  1. 满足标准(属于 Table1ID #1)
  2. 已添加用户(属于 Table1ID #1)
  3. 已送审(属于 Table1ID #2)
  4. 已收到响应(属于 Table1ID #2)
  5. 已完成(属于 Table1ID #2)
  6. 不符合条件(属于 Table1ID #3)
  7. 处理完成(属于 Table1ID #3)

预期的功能是,如果用户 selects "Open" 在第一列(下拉列表基于 Table 1 中的值),则第二列将仅显示来自 Table 2 的 ID #1 和 #2 作为有效的 select 离子(即第二列的下拉列表被过滤,其中 Table1ID = 1)。

如果记录已经填写(例如,第 1 列的 ID 为 1,第 2 列的 ID 为 2)并且用户编辑了记录,例如 selecting 第 1 列中的 ID 2,则第 2 列将删除无效组合(例如,第 2 列的 ID 2 不再有效,因为它不是 Table 1 的 ID selected 的子集的一部分,现在是 2,从 1 更改)。

我的问题在上面,但为了清楚起见,我以我想要的方式查看了 SQL 视图和数据表视图,并让下拉菜单彼此独立工作(尽管第 2 列显示了 [=60 中的所有值=] 2),我只需要 relating/linking 两个下拉菜单的帮助。

提前感谢您的帮助。

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

它将打开一个查询编辑器 Window。在查询编辑器中 Select 您的 table 并将该列添加到下面的字段列表中。然后你需要定义一个标准,在你的情况下,如果我没看错的话,它将是一个 Like Like & "*" & Forms![FormName]![Combo1] & "*"

现在这将确保 combobox2 依赖于 ComboBox1。现在进入 ComboBox 1 Properties 并进入事件选项卡并在 AfterUpdate 事件中添加以下代码。

me.Combo2.Requery

Me.Combo2.value = ""