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

2019-08-30 09:36发布

问题:

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

回答1:

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.



标签: vb6 recordset