Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用空字段查询时出现“未找到属性”访问错误_Sql_Ms Access_Ms Access 2013 - Fatal编程技术网

Sql 使用空字段查询时出现“未找到属性”访问错误

Sql 使用空字段查询时出现“未找到属性”访问错误,sql,ms-access,ms-access-2013,Sql,Ms Access,Ms Access 2013,目前我对MS Access 2013有一个奇怪的问题。当我使用空字段查询时,它一直返回未找到的属性 我创建的查询应该允许用户输入部分、全部或全部邮政编码,并返回匹配的记录。在运行Access 2016的笔记本电脑上,此查询在所有形式下都可以正常运行,但在字段留空时返回上述错误 SQL模式下的查询为: WHERE ((Left([Carer Contact Details]![Postcode],Len([Forms]! [AgeRangeQueryForm]![PostcodeSearch])

目前我对MS Access 2013有一个奇怪的问题。当我使用空字段查询时,它一直返回未找到的属性

我创建的查询应该允许用户输入部分、全部或全部邮政编码,并返回匹配的记录。在运行Access 2016的笔记本电脑上,此查询在所有形式下都可以正常运行,但在字段留空时返回上述错误

SQL模式下的查询为:

WHERE ((Left([Carer Contact Details]![Postcode],Len([Forms]! 
[AgeRangeQueryForm]![PostcodeSearch])))=[Forms]![AgeRangeQueryForm]![PostcodeSearch])) OR ((([Forms]![AgeRangeQueryForm]![PostcodeSearch]) Is Null));
查询中还有一些额外的部分,与表单的其他部分相关,但它们在这里并不相关,因为查询的所有其他部分都在运行

我怀疑这是Access 2016和2013之间的兼容性问题。该数据库最初是在Access 2016中创建的,但我必须将其移植到运行2013的旧系统上。这是我能确定的唯一区别,我无法找出它在一台机器上工作而在另一台机器上不工作的任何其他原因

任何帮助都将不胜感激

尝试使用Nz:


谢谢古斯塔夫!这就成功了。我是否可以假设这是因为Access抱怨存在空值,而在这里使用Nz会将其转换为零长度字符串?
WHERE
    (Left([Carer Contact Details]![Postcode], Len(Nz([Forms]![AgeRangeQueryForm]![PostcodeSearch]))) = Nz([Forms]![AgeRangeQueryForm]![PostcodeSearch])) 
    OR 
    ([Forms]![AgeRangeQueryForm]![PostcodeSearch] Is Null);