MS Access:带有复选框的表单过滤器以应用预定义的标准

问题描述

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

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

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

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

非常感谢您的帮助。

帕维尔

解决方法

对于作为 RecordSource 表单的动态参数化查询,请考虑:

WHERE IIf(ClosedOnDate IS NULL,1) LIKE IIf(Forms!formname!checkboxname = 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 属性设置为 No。