首页 > 解决方案 > MS Access:带有复选框的表单过滤器以应用预定义的标准

问题描述

我是 MS Access 的新手。我正在尝试构建一个表单,我可以通过单击一个复选框来应用预定义的条件来过滤它。在我的特殊情况下, tblIssues 包含 ClosedOnDate 字段。

我希望我的表单能够显示 ClosedOnDate 为 Null 的记录(例如,当表单 CheckBox 状态为 False 时)以及当表单 CheckBox 状态为 True 时的所有记录。

在表单中应用过滤器的机制对我来说相当清楚,但我不知道如何将表格中的非 CheckBox 字段与表单上的复选框联系起来。

我尝试在论坛中搜索提示,但找不到有关该主题的任何有意义的帖子。

非常感谢您的帮助。

帕维尔

标签: formsms-accessfilter

解决方案


对于形式为 RecordSource 的动态参数化查询,请考虑:

WHERE IIf(ClosedOnDate IS NULL, 0, 1) LIKE IIf(Forms!formname!checkboxname = 0, 0, "*"); 

或者,编写一个有条件地构建过滤条件并应用于表单过滤属性的 VBA 过程。

Dim strWhere As String
...
If Me.checkboxname = False Then strWhere = "ClosedOnDate IS NULL"
...
Me.Filter = strWhere
Me.FilterOn = True

有关代码构建过滤条件的更广泛示例,请查看http://allenbrowne.com/ser-62code.html

请务必将复选框 TripleState 属性设置为否。


推荐阅读