Ms access 嵌套IIF给出错误
我正在报表生成器中生成报表并创建计算字段 当我尝试输入表达式时Ms access 嵌套IIF给出错误,ms-access,nested,vba,iif,Ms Access,Nested,Vba,Iif,我正在报表生成器中生成报表并创建计算字段 当我尝试输入表达式时 =iif(IsNothing(Fields!DDICU.Value),"",iif(fields!DDICU.value > Parameters!end.value,"00:00",fields!TDICU.value.tostring)) 当DDICU.value为空时,我得到一个错误,但是当DDICU中有值时,嵌套的iif语句工作正常 有人有什么想法吗?在给出结果之前,IIF()操作符计算TRUE和FALSE子句。因此
=iif(IsNothing(Fields!DDICU.Value),"",iif(fields!DDICU.value > Parameters!end.value,"00:00",fields!TDICU.value.tostring))
当DDICU.value
为空时,我得到一个错误,但是当DDICU
中有值时,嵌套的iif
语句工作正常
有人有什么想法吗?在给出结果之前,IIF()
操作符计算TRUE和FALSE子句。因此,如果FALSE子句给出错误,它仍然会抛出错误
请参见以下示例:
Option Explicit
Public Sub TestMe()
If True Then
Debug.Print 2
Else
Debug.Print 0 / 0
End If
Debug.Print IIf(True, 1, 0 / 0)
End Sub
IF
和IIF
看起来几乎相同,但VBA将在IIF()
处抛出错误,因为它将尝试计算0/0
。根据If
条件,它不会抛出错误,因为它不会尝试计算0/0
,IIF()
操作符在给出结果之前计算TRUE和FALSE子句。因此,如果FALSE子句给出错误,它仍然会抛出错误
请参见以下示例:
Option Explicit
Public Sub TestMe()
If True Then
Debug.Print 2
Else
Debug.Print 0 / 0
End If
Debug.Print IIf(True, 1, 0 / 0)
End Sub
IF
和IIF
看起来几乎相同,但VBA将在IIF()
处抛出错误,因为它将尝试计算0/0
。根据If
条件,它不会抛出错误,因为它不会尝试计算0/0
,但当DDICU有值时-表达式计算正确-只有当DDICU没有值时,我才能获得error@PhilStuart-Douek-参见编辑,试着用标准的if-else来构建它。false子句没有给出错误,而true子句给出了错误error@PhilStuart-Douek-尝试使用If ElseIf End If
重写它并再次检查。但是当DDICU有值时-表达式计算正确-只有当DDICU没有值时,我才能获得error@PhilStuart-Douek-查看编辑,尝试使用标准if-else构建它。false子句没有给出错误-给出错误的是true子句error@PhilStuart-Douek-尝试用If ElseIf End If
重写它,并再次检查。