为什么我的DLookup产生“invalid use of null”错误:94

在我的Access VBA代码中,我有几个顺序的DLOOKUP函数。 他们都是一样的,除了他们从'studys'返回的参数的价值。

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

无效的使用null

产生错误的代码行是:

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

“研究报告”中的尸检值偶尔是一个空的date,但这就是为什么我要查找它。

比较上面那行:

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

这段代码运行良好。 它永远不会返回空值,因为研究结束永远不会为空。

这是怎么回事?

如果您将Dim necropsy As Date ,则necropsy不能接受Null,因为Null不是date/时间值。

如果你想允许necropsy接受Null,那么把它变成一个Variant: Dim necropsy As Variant

VBA中的date不能为空。

如果你只是删除variables声明,它将作为不为空的date返回。