MS Access:带有复选框的表单过滤器以应用预定义的标准
Posted
技术标签:
【中文标题】MS Access:带有复选框的表单过滤器以应用预定义的标准【英文标题】:MS Access: form filter with Check Box to apply predefined criteria 【发布时间】:2021-06-21 15:24:30 【问题描述】:我是 MS Access 的新手。 我正在尝试构建一个表单,我可以通过单击一个复选框来应用预定义的标准来过滤它。 在我的特殊情况下,tblIssues 包含 ClosedOnDate 字段。
我希望我的表单能够显示 ClosedOnDate 为 Null 的记录(例如,当表单 CheckBox 状态为 False 时)以及当表单 CheckBox 状态为 True 时的所有记录。
在表单中应用过滤器的机制对我来说相当清楚,但我不知道如何将表格中的非 CheckBox 字段与表单上的复选框联系起来。
我尝试在论坛中搜索提示,但找不到任何关于该主题的有意义的帖子。
非常感谢您的帮助。
帕维尔
【问题讨论】:
【参考方案1】:对于形式为 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 属性设置为否。
【讨论】:
谢谢 June7,在第二种情况下,我在哪里应用 VBA 代码?是 CheckBox 的“On Click”事件还是 Form 的“On Filter”事件? 视情况而定。您想使用来自多个控件的输入来构建标准吗?如果没有,那么可以只使用点击事件,否则,一个按钮。我看不出 OnFilter 事件对设置过滤器有何用处。您是否查看了链接的文章?以上是关于MS Access:带有复选框的表单过滤器以应用预定义的标准的主要内容,如果未能解决你的问题,请参考以下文章
如何在连续子表单中使用未绑定复选框 - MS Access 2013