0

为什么我不能使用:

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

它说“无效使用 Null”

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

 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
4

1 回答 1

4

很可能编译器不会在 IIF() 语句中短路。编译器在返回一个之前将其作为一个完整的语句(两个值)。那就是你得到错误的地方。因此,分解成适当的条件语句将是这里的关键。所以你的答案已经实现了。进一步补充一点,IIF()的执行速度比 IF-ELSE 语句要慢得多。

于 2012-11-13T08:19:12.690 回答