【问题标题】:Why is my DLookup producing "invalid use of null" Error: 94为什么我的 DLookup 会产生“无效使用 null”错误:94
【发布时间】:2016-01-22 15:33:05
【问题描述】:

在我的 Access VBA 代码中,我有几个 DLOOKUP 函数按顺序排列。除了从 'studys' 返回的参数值之外,它们都是相同的。

最后一个偶尔会产生错误:

null 的使用无效

产生错误的代码行是:

 necropsy = DLookup("[Necropsy]", "Studys", "[Primary Key] = " & ID)

Study's 中的尸检值有时是 null Date,但这就是我查找它的原因。

比较上面的那一行:

studyEnd = DLookup("[Study End]", "Studys", "[Primary Key] = " & ID)

这段代码运行良好。它永远不会返回 null 值,因为 study end 永远不会为 null。

怎么了?

【问题讨论】:

  • 是的,太棒了。我认为您必须对 vba 中的 var 声明具有爆炸性。
  • 您可以将其保留为日期并将DLookup 包装在NZ 函数中。

标签: sql excel ms-access vba


【解决方案1】:

如果您有Dim necropsy As Datenecropsy 不能接受 Null,因为 Null 不是日期/时间值。

如果您想允许 necropsy 接受 Null,请将其改为 Variant:Dim necropsy As Variant

【讨论】:

    【解决方案2】:

    VBA 中的日期不能为 Null。

    如果您只是删除变量声明,它将在不为空时作为日期返回。

    【讨论】:

    • 如果模块的声明包含Option Explicit,删除变量声明会导致编译错误。在这种情况下,将其声明为 As Variant,以便它可以接受 Null。 (您应该始终在代码模块中包含 Option Explicit。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2019-08-06
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多