我在返回NULL
NULL = NULL
时遇到问题。我希望它返回True
.经过一番研究,我找到了一条我认为可行的线。
set ansi_nulls off
我很快了解到 Access 无法识别它。所以在这里我试图在 Access 中执行嵌套条件,这完全是一场噩梦。
有没有更简单的方法来解决这个问题?
如果要进行大量"相等或两个 null"比较,有多种解决方案:
-
如果在比较数字时
0 = Null
结果为 true,或者在比较字符串时"" = Null
result 为true,则可以使用:If Nz(Value1) = Nz(Value2) Then
这会将所有 Null 替换为取决于输入类型的0
或""
。
后果:Nz(Null) = Nz(Null)
→True
、0 = Nz(Null)
→True
、"" = Nz(Null)
→True
、1 = Nz(Null)
→False
、"a" = Nz(Null)
→False
- 创建一个用户定义的函数来为您进行比较
该函数:
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 只需要调用此函数而不是通常的=