基于表关系访问过滤器

时间:2013-07-08 19:50:37

标签: ms-access

我非常感谢能够帮助改善以下方面:

表1

A B

1

2

3 2

4 2

5

6

7 6

8 6

9 6

我有一个表,而不是包含2个字段,A和B(对不起......试图在这里更好地分隔字段时遇到一些问题...新增到stackoverflow)

我有一个带有一个多选列表框的用户表单。此列表框中填充了字段A. 用户可以在此列表框中选择任意数量的项目。

在表格中,字段B与字段A相关,因此B中的条目允许在A中选择项目的简写方法 - 这是我想要实现的“速记”。

示例:

  • 如果列表框选择为1,6,则实际选择为1,6,7,8,9(6与7,8,9相关)

  • 如果列表框选择为1.5,则实际选择为1,5(此处不存在关系)

  • 如果列表框选择为2,6,则实际选择为2,3,4,6,7,8,9

B中的条目也必须出现在A中,因为用户可以启用或禁用关系(此处仅使用A中的选项)。在任何一种情况下,都会对所做的选择进行后处理。

我想知道的是 - 是否有一种简单的方法来填充数组,例如当启用A:B关系时,选择()以及所有选择?这将最终输入sql“IN(...)”语句。 我在Excel中做了类似的事情但是我正在将项目转换为Access,并且想知道是否有一些sql方法可以一步完成。

(编辑:) 到目前为止,我构建了以下似乎可行的:

SELECT A
FROM Table1
WHERE A IN(1,2,6) OR B IN(1,2,6);

过滤回报:1,2,3,4,6,7,8,9(正是我想要的)

对于上述内容,我可以使用VBA提取列表框中用户选择的项目,然后将这些条目填充到上面的“IN(...)”语句中。

我现在需要做的是能够将上述结果输入到第二个下游搜索查询中,特别是使用上述查询中的过滤返回来填充另一个“IN(....)”语句。是否有捷径可寻?

1 个答案:

答案 0 :(得分:1)

在设计视图中,选择子组合框的Rowsource,即根据父组件更改的组合。它会询问您是否要构建SQL查询引用。

选择要显示的字段以及要关联的字段,然后使用 [Forms]![YourForm]![cboParentCombo]作为相关字段的标准。确保两个CBO都设置为包含可见字段和相关字段,并确保“绑定列”匹配,即在设计视图中,如果cbo1上的字段1绑定到cbo2上的字段2,请确保两者的绑定列反映了这一点。

我有一个下拉列表,您可以从列表中选择一个部门。该表中的另一个字段,在组合中链接但不可见,是显示部门类型的数字。下一个组合显示一个类别,并且具有一个不可见的字段,该字段也是部门类型。我将[Forms]![AddNewCase]![cboDepartment]放在rowsource sql查询中隐藏相关字段的条件中,并且我的绑定列都设置为2.每当部门更改时,类别选项都会更改以反映它。

希望有助于解决问题