access中,想查询某字段的所有任何字符的记录和所有空值记录

建了一个数据库,还有一个查询的窗体,在窗体上建了一个文本框,希望在查询文件的条件栏中用IIf语句,当窗体上的文本框中是空时,查询某字段的所有字符型记录和空值记录,我写的是这样的:Like IIf(IsNull([Forms]![操作窗体2]![判定]),Like "*" Or Is Null,"*" & [Forms]![操作窗体2]![判定] & "*"),但查询结果不显示任何记录,怎么回事呀,拜求大师指点:)
再一个因为是在IIF语句中,所以不知道显示全部包括空值记录的写法:)

这是一个伪命题。

    如果不输入查询是全部记录,那么就应该包括空值记录了。

    如果查询空值记录,应该是:=[Forms]![操作窗体2]![判定],此处不应使用like。

    一般使用like关键词来查询的表字段,应该设置为非空。否则,一旦存在空值时,like是查不出来的。

    最后,个人建议还是遵从大家的习惯。即:有输入时模糊查询,无输入时显示全部记录。

追问

不写条件不行,我建立一个查询面板,上面有各个字段的文本框,输入要查询的关键字,打开另外的窗体看结果。因为查询面板窗体上有每个字段相对应的文本框,需要查询时,每个文本框都可能输入关键字,所以每个字段的查询条件栏中都要有语句:如果查询面板上的对应的字段文本框是空的,就全部显示(现在显示“*”可以实现了,但显示包括空值的条件实现不了),否则不是空的,就查询这个关键字。想知道这个条件表达式怎么写:)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-02
用字符添加法。假设A字段既有空值又有非空值,新建一字段:A&"ABC" (注:假设"ABC"是该字段值没有的字符组合,否则混淆查询结果)。这个新字段的查询条件:Like "*" & [Forms]![操作窗体2]![判定] & "*",A字段就不设查询条件了。
这个思路巧妙之处在于,将空值变成非空值,方便查询。
第2个回答  2019-08-17
我遇到了和你一样的问题,你可以在查询的条件中输入:
Like "*" &[Forms]![操作窗体2]![判定] & "*" Or [Forms]![操作窗体2]![判定] Is Null
相似回答