2017-11-02 6 views
0

レポートビルダーでレポートを作成し、計算フィールドを作成しています。ネストされたIIFでエラーが発生する

私がしようとする表現に

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

を入力するとDDICU.valueは空ですが、誰もが任意のアイデアを持ってDDICU

に値があるとき、ネストされたiif文が正しく動作したときに、私はエラーを取得しますか?

答えて

3

IIF()オペレータが結果を与える前に、TRUEFALSE句の両方を評価します。したがって、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の両方がほとんど同じに見えるが、それは0/0を計算しようとするので、VBAは、IIF()でエラーがスローされます。 If条件では、0/0の計算を試みないため、エラーは発生しません。

+0

DDICUに値がある場合 - DDICUが値を持っていない場合にのみ式が正しく評価されますか? –

+0

@ PhilStuart-Douek - 標準のif-elseでビルドしてみてください。 – Vityata

+0

偽の句がエラーを出すことはありません。エラーを返す真の句です。 –

関連する問題