像*不捕获是否为Null值

时间:2018-05-01 13:24:10

标签: sql ms-access

我有一个Access Query,使用

过滤我数据库中的表
Like "*" & [Forms]![Reports]![Filter] & "*"

如果选择了该过滤器,则会抓取过滤的项目,如果未选择该过滤器,则返回所有内容。但是,它错过了Null值。如果未选择过滤器,则字符串变为

Like **

,它不会捕获Null值。

如何以我描述的方式捕获这些值?

3 个答案:

答案 0 :(得分:2)

以上两个答案都是正确的,但是提供一些添加的上下文NULL无法与任何东西进行比较。它不是'不是5','不像“**”,'不像“ foo ”',而不是'日期< #12/31/0000 BC#',而不是假,你明白了。选择它的唯一方法是像上面的专家那样做,IS NULL或IS NOT NULL。

答案 1 :(得分:1)

在Microsoft Access查询条件中,您可以使用OR

Like "*" & [Forms]![Reports]![Filter] & "*" Or Is Null 

...让Null 返回,然后使用:

Is Not Null

...或者,

Like "*" & [Forms]![Reports]![Filter] & "*" And Is Not Null 

答案 2 :(得分:1)

您可以通过或执行空检查来执行此操作,以便返回两个条件的数据 - >

(Like "*" & [Forms]![Reports]![Filter] & "*" OR MyField IS NULL)

此外,您应该能够检查UI缺少值 - >

 (Like "*" & [Forms]![Reports]![Filter] & "*" OR [Forms]![Reports]![Filter] = "" )