VB6 - IIF(ISNULL(rs),“TRUE”,Replace())

时间:2012-11-13 08:10:08

标签: vb6 recordset

为什么我不能使用:

     rep8_bc = IIf(IsNull(rs(8)), "null", Replace(rs(8), "'", "''"))

它说“无效使用空”

但如果我删除替换,它的工作。然后得到错误,因为记录有一个撇号字符,所以我将代码更改为:

 rep8_bc = "null"
 If IsNull(rs(8)) = False Then rep8_bc = Replace(rs(8), "'", "''")

或者这个:

 If IsNull(rs(8)) = False Then
     rep8_bc = Replace(rs(8), "'", "''")
 else
     rep8_bc = "null"
 end if

1 个答案:

答案 0 :(得分:4)

很可能编译器不会在IIF()语句中短路。编译器在返回之前将其作为整个语句(两个值)。这就是你得到错误的地方。因此,破解成适当的条件状态将成为关键。所以你有任何成就你的答案。 为了进一步添加,IIF()在执行中的执行速度远比IF-ELSE更慢。