将变量设置为Null Value时出错

时间:2018-05-03 23:46:39

标签: ms-access access-vba

我试图以一种形式编写模块,该模式根据用户输入的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。由此我推断我不允许将变量设置为Null值...我可以在前面添加以下if子句,但这似乎比应该更加麻烦。处理这个问题的最佳做法是什么?错误处理程序?

1 个答案:

答案 0 :(得分:1)

防止错误。

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

DysVld = Nz(DLookup("[DaysValid]", "tblInduction", "[ID] = " & Me.Induction),0)
If DysVld <> 0