0

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

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

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

表一:(编号为“ID”,描述为“标签”)

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

表 2:

  1. 满足标准(与 Table1ID #1 相关)
  2. 用户添加(属于 Table1ID #1)
  3. 送审(与 Table1ID #2 有关)
  4. 收到响应(与 Table1ID #2 有关)
  5. 最终确定(与 Table1ID #2 有关)
  6. 不符合标准(与 Table1ID #3 有关)
  7. 流程完成(与 Table1ID #3 有关)

预期的功能是,如果用户在第一列中选​​择“打开”(下拉列表基于表 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 中的所有值),我只需要关联/链接方面的帮助两个下拉列表在一起。

预先感谢您的协助。

4

1 回答 1

1

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

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

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

me.Combo2.Requery

Me.Combo2.value = ""

于 2015-03-30T13:51:17.530 回答