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
重写它,并再次检查。