在空检查中未检测到记录集空值

  • 本文关键字:记录 空值 null vb6
  • 更新时间 :
  • 英文 :


我正在循环记录集中的行,并根据当前行中的字段值为变量分配值。我不断收到错误

无效使用空

调试时,我发现此问题在以下行

TurnoverPTD = rsPeriod.Fields(0)

为了解决这个问题,我将其更改为以下内容

If rsPeriod.Fields(0) = Null Then
   TurnoverPTD = 0
Else
   TurnoverPTD = rsPeriod.Fields(0)
End If

然而,我仍然遇到同样的错误。调试时,将光标悬停在顶行上会显示工具提示中的rsPeriod.Fields(0) = Null,但是我不确定这是否只是表明这就是代码行所说的?

我还能如何检查 Null,为什么我的方法不起作用?

有一种方法类似于 mthod 存在于 VB.NET 中的IsDBNull

该方法IsNull 接受一个参数 (rsPeriod.Fields(0)) 并返回一个布尔值。

您可以在If语句中使用此方法,如下所示。

If IsNull(rsPeriod.Fields(0)) Then
   TurnoverPTD = 0
Else
   TurnoverPTD = rsPeriod.Fields(0)
End If

最好使用它而不是像代码中那样If x = NullIsNull检查值是否为 null。 使用 = 运算符意味着它将尝试比较值 - 但不能以这种方式将值与 Null 进行比较。

因此,在比较RecordSet字段时,这是最好的方法。

我会使用:

If IsNull(rsPeriod.Fields(0).Value) Then

不要依赖默认属性,也不需要测试是否True = True .

将其更改为:

If rsPeriod.Fields(0) Is Nothing Then
   TurnoverPTD = 0
Else
   TurnoverPTD = rsPeriod.Fields(0)
End If

相关内容

  • 没有找到相关文章

最新更新