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

2019-08-30 10:04发布

why i cannot use :

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

it say " Invalid use of Null"

but if i remove replace, it's work. And then get error because record have an apostrophe character, so i change the code into this :

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

or this :

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

标签: vb6 recordset
1条回答
聊天终结者
2楼-- · 2019-08-30 10:28

Mostly likely compiler doesn't short circuit within IIF() statement. Compiler takes it as a whole statment (both values) before returning one. That's where you get the error. So breaking into pieces of proper conditional statemetns would be the key here. So you have any achieved that with your answer. To further add, IIF() is much slower in execution than the IF-ELSE statments.

查看更多
登录 后发表回答