如何解决MS Access – 过滤#Multiple Criteria 而忽略空值
从本质上讲,我试图在三个条件下过滤表单......没有一个过滤器覆盖前一个......
我决定使用 If 语句来覆盖选项按钮。如果选项 xx 为真,则 过滤器工作正常,直到组合框或日期输入文本字段中有一个空白值。 然后在查询表达式中返回一个错误,说 Extra)
If Me.Option54 = True Then
Filter = "([Date] Between #" & Format([TxtDtStrt],"yyyy\/mm\/dd") & "# And #" & Format([TxtDtEnd],"yyyy\/mm\/dd") & "#) And ([OpDescription]=" & ([Combo58]) & ")And ([NCR Clsd?]=False)"
End If
If Me.Option56 = True Then
Filter = "([Date] Between #" & Format([TxtDtStrt],"yyyy\/mm\/dd") & "#) And ([OpDescription]=" & ([Combo58]) & ")And ([NCR Clsd?]=True)"
End If
If Me.Option54 = False And Me.Option56 = False Then
Filter = "([Date] Between #" & Format([TxtDtStrt],"yyyy\/mm\/dd") & "#) And ([OpDescription]=" & ([Combo58]) & ")"
End If
Me.FilterOn = True
如果源字段为空,有没有办法忽略过滤器?
我似乎无法让 IsNull 命令实际执行任何操作
解决方法
如果没有提供条件,要么使用更多条件语句不使用过滤器,要么处理 null 以替换为另一个值。
Nz([Date],#1/1/1900#)
Format(Nz([TxtDtStrt],#1/1/1900#))
Format(Nz([TxtDtEnd],#12/31/2099#))
我找到的最终解决方案是使用 IsNull 和 Not IsNull 作为布尔值,结合 IF 并覆盖公共子中的所有可能组合
然后在点击每个过滤器时调用公共子......它的工作原理,只是想知道是否有更优雅的方式来做到这一点......
recycler_view = findViewById(R.id.recycler_view)
recycler_view.addOnScrollListener(object : RecyclerView.OnScrollListener(){
override fun onScrolled(recyclerView: RecyclerView,dx: Int,dy: Int) {
if(dy > 0){
fab.hide();
} else{
fab.show();
}
super.onScrolled(recyclerView,dx,dy)
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。