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

时间:2019-01-31 14:02:46

标签: sql ms-access ms-access-2013

我现在对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的旧系统上。这是我唯一可以确定的区别,无法弄清楚它为什么可以在一台机器上运行而不在另一台机器上运行!

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试使用 Nz

WHERE
    (Left([Carer Contact Details]![Postcode], Len(Nz([Forms]![AgeRangeQueryForm]![PostcodeSearch]))) = Nz([Forms]![AgeRangeQueryForm]![PostcodeSearch])) 
    OR 
    ([Forms]![AgeRangeQueryForm]![PostcodeSearch] Is Null);