嵌套IIF给出错误

时间:2017-11-02 16:55:41

标签: vba ms-access nested access-vba iif

我正在“报告”构建器中构建报告并创建计算字段。

当我尝试输入表达式

=iif(IsNothing(Fields!DDICU.Value),"",iif(fields!DDICU.value > Parameters!end.value,"00:00",fields!TDICU.value.tostring))

DDICU.value为空时出错,但iif

中存在值时嵌套DDICU语句正常工作

有人有任何想法吗?

1 个答案:

答案 0 :(得分:3)

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

IFIIF看起来几乎相同,但VBA会在IIF()处抛出错误,因为它会尝试计算0/0。在If条件下,它不会引发错误,因为它不会尝试计算0/0