Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Ms access 将变量设置为空值时出错_Ms Access_Vba - Fatal编程技术网

Ms access 将变量设置为空值时出错

Ms access 将变量设置为空值时出错,ms-access,vba,Ms Access,Vba,我正在尝试以一种表单编写一个模块,该表单基于用户输入IssueDate控件和相关表中的DaysValid字段自动填充ExpiryDate控件。如果DaysValid中没有数据,它会将该记录视为永不过期的记录,并将ExpiryDate留空 以下是当前的模块: Private Sub IssueDate_AfterUpdate() If Not IsNull(IssueDate) Then Dim DysVld As Integer DysVld = DLookup("[DaysV

我正在尝试以一种表单编写一个模块,该表单基于用户输入IssueDate控件和相关表中的DaysValid字段自动填充ExpiryDate控件。如果DaysValid中没有数据,它会将该记录视为永不过期的记录,并将ExpiryDate留空

以下是当前的模块:

Private Sub IssueDate_AfterUpdate()

If Not IsNull(IssueDate) Then
    Dim DysVld As Integer
    DysVld = DLookup("[DaysValid]", "tblInduction", "[ID] = " & Me.Induction)
        If IsNull(DysVld) Then
            Exit Sub
        End If
    ExpiryDate.Value = DysVld + IssueDate
End If

End Sub
如果tblInduction.DaysValid中没有值,则会出现运行时错误94-无效使用Null。由此我推断,我不允许将变量设置为空值。。。我可以把下面的if子句放在前面,但这似乎比必要的要麻烦得多。处理这个问题的最佳实践是什么?错误处理程序?

防止错误

只有variant变量可以保存Null。DysVld变量声明为整数。将其声明为变体或更改代码

DysVld = Nz(DLookup("[DaysValid]", "tblInduction", "[ID] = " & Me.Induction),0)
If DysVld <> 0
DysVld=Nz(DLookup(“[DaysValid]”)、“tblInduction”、“[ID]=”&Me.inclusion),0)
如果DysVld为0

啊!新西兰功能!那会帮我解决的。谢谢