我循环遍历记录集中的行,并根据当前行中字段的值分配我的变量值。我一直收到错误
无效使用Null
调试时我发现此问题出在以下一行
TurnoverPTD = rsPeriod.Fields(0)
要解决此问题,我将其更改为以下
If rsPeriod.Fields(0) = Null Then
TurnoverPTD = 0
Else
TurnoverPTD = rsPeriod.Fields(0)
End If
然而,我仍然得到同样的错误。调试时,将光标放在顶行显示工具提示中的rsPeriod.Fields(0) = Null
,但是我不确定这是否只是表示代码行说的是什么?
我如何检查Null以及为什么我的方法不起作用?
答案 0 :(得分:3)
IsDBNull
中存在类似于VB.NET
方法的方法。
方法IsNull
接受一个参数(rsPeriod.Fields(0)
)并返回一个布尔值。
您可以在If
语句中使用此方法,如下所示。
If IsNull(rsPeriod.Fields(0)) Then
TurnoverPTD = 0
Else
TurnoverPTD = rsPeriod.Fields(0)
End If
使用此代码而不是If x = Null
代码更好,IsNull
正在检查值是否为null。使用=运算符意味着它将尝试比较值 - 但是您不能以这种方式将值与Null进行比较。
因此,在比较RecordSet
字段时,这是最好的方法。
答案 1 :(得分:0)
我会用:
If IsNull(rsPeriod.Fields(0).Value) Then
不要依赖默认属性,也不需要测试True = True
。
答案 2 :(得分:-1)
将其更改为:
HList