处理 NULL = Access VBA 中的 NULL 比较



我在返回NULLNULL = NULL时遇到问题。我希望它返回True.经过一番研究,我找到了一条我认为可行的线。

set ansi_nulls off

我很快了解到 Access 无法识别它。所以在这里我试图在 Access 中执行嵌套条件,这完全是一场噩梦。

有没有更简单的方法来解决这个问题?

如果要进行大量"相等或两个 null"比较,有多种解决方案:

  1. 如果在比较数字时0 = Null结果为 true,或者在比较字符串时"" = Nullresult 为true,则可以使用:

    If Nz(Value1) = Nz(Value2) Then

这会将所有 Null 替换为取决于输入类型的0""

后果:Nz(Null) = Nz(Null)True0 = Nz(Null)True"" = Nz(Null)True1 = Nz(Null)False"a" = Nz(Null)False

  1. 创建一个用户定义的函数来为您进行比较

该函数:

Public Function CompareWithNulls(Value1 As Variant, Value2 As Variant) As Boolean
If IsNull(Value1) And IsNull(Value2) Then
CompareWithNulls = True
Else
CompareWithNulls = Value1 = Value2
End If
End Function

函数的使用:

If CompareWithNulls(Value1, Value2) Then

您可以使用And关键字在不嵌套的情况下测试多个条件:

If IsNull(Value1) And IsNull(Value2) Then

您可以创建一个方法,以空检查比较两个变量,然后每个 IF 只需要调用此函数而不是通常的=

相关内容

最新更新