【问题标题】:"Property Not Found" Access Error When Querying With a Null Field使用空字段查询时出现“找不到属性”访问错误
【发布时间】:2019-01-31 14:02:46
【问题描述】:

目前我对 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 的旧系统上。这是我能确定的唯一区别,我无法弄清楚为什么它可能在一台机器上工作而不是另一台机器的任何其他原因!

任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    尝试使用 Nz

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

    【讨论】:

    • 感谢古斯塔夫!那成功了。我是否可以假设这有效,因为 Access 抱怨存在 Null 值,而在此处使用 Nz 会使其变成零长度字符串?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多