【发布时间】:2016-04-27 09:07:19
【问题描述】:
我有一个包含 10 列的表单,其中 5 列(Project_Phase、Contract、Design_DPM、AMM/UCC、1_or_2 stat)我想添加连接的下拉列表组合框来过滤记录并显示在组合框。
我知道如何制作多个下拉列表组合框,根据从一列中选择一个值来过滤整个表单。例如,“合同”组合框有选项:已签名、未签名。如果我选择“签名”,它将显示所有已“签名”的记录。如果我过滤另一列,它将取消先前的过滤器并显示仅与该列中的选择相关的记录。
但我想要的是能够使用我提到的 5 列中的任意数量的过滤选项进行过滤。例如,如果我想查看(“Contract”下的“signed”)和(“Project_Phase”下的“proposal”)和(“Design_DPM”下的“a certain DPM”)中的记录。过滤后,我希望能够清除过滤器并再次查看所有记录,因为我正在使用此表单为用户显示我的所有记录。我不希望它被级联,因为我可能只想使用一列或更多或全部进行过滤。而且我不希望它成为查询或在数据表视图中使用基本过滤。
很抱歉解释冗长,如果有不清楚的地方我会进一步解释。感谢您的努力。
【问题讨论】:
-
听起来你需要的是:(a)让每个组合框都有一个'*'或'All'排序到顶部;然后 (b) 为每个组合框实现事件代码,该代码将审查所有组合并通过组合所有组合框生成正确的表单过滤器(或创建新的行源)。这听起来好吗?
-
对不起,我不明白你提到的一些技术术语,因为我基本上是 VBA 编码的新手。但我相信你做对了。不过,请允许我再次详细说明,以确保我们在同一页面上。
-
我需要的是:a)对于每个组合框,该组合框将过滤列中的值的唯一列表“不重复”(我知道如何执行此操作)b)是的,实现更新后事件代码,当我从一个或多个组合框中选择一个值时,它将相应地过滤表单。所以我可以使用一个或多个组合过滤我的表单。 c) 能够清除所有过滤器并再次查看完整的表单数据。
标签: vba database ms-access filter combobox