MS Access:如何将 Is Null 包含到查询条件的 IIF 语句的结果中如果搜索字段留空,则添加“is Null”

问题描述

我正在寻求帮助。我制作了一个包含四个字段的示例表:

国家 城市 地点 IS_EMPLOYEE

我创建了一个搜索表单,其中包含这四个字段作为输入和一个搜索按钮来启动以下保存的查询

SELECT NullTest.Country,NullTest.City,NullTest.Location,NullTest.IsPerm FROM NullTest WHERE ((NullTest.Country) Like "*" & Forms!ATest!input_COUNTRY & "*" Or (NullTest.Country) Is Null) And ((NullTest.City) Like "*" & Forms!Atest!input_CITY & "*" Or (NullTest.City) Is Null)

到目前为止一切都很好,我在 ITALY 中搜索了所有内容,并返回了 ITALY 国家/地区和所有其他字段的所有内容,无论它们是否为空白 (NULL)

但是,使用该代码,我然后搜索 Country=ITALY 和 City=MILAN,它会返回 ITALY 和 MILAN 中的所有记录以及城市留空的位置

我想要实现的是: 用户是否将 City 留空,然后搜索 Country = ITALY AND City Is Null 如果用户也填写 City 则搜索 Country = ITALY AND City = abc(但不包括空格)

我为两个 das 尝试了许多变体,但没有任何结果:

我尝试了所有口味的 NZ(City),结果返回 0 行 我已经尝试了没有“OR Is Null”选项的所有字段,虽然这适用于精确数据,但它排除了我不想要的空白,因为数据是“脏的”

我得到的最接近的是:

((NullTest.City) = IIF(IsNull(Forms!ATest!_inputCITY),(NullTest.City) Is Null,(NullTest.City)=Like "*" & Forms!Atest!input_CITY & "*"))

但是Access在运行查询时返回的错误是太复杂了(它允许我保存它) 请注意,如果我将“Is Null”替换为“ROME”,如果搜索字段为空,它会在查询中返回“ROME”,因此理论上 IIF 语句有效,只是不适用于“Is Null”

非常感谢任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)