2

我知道我已经问了很多,我每天都在学习!

在此处输入图像描述

冒犯的表达是:

=IIf(Parameters!ResponseRange.Value = 3, Nothing, 
    IIf(Parameters!ResponseRange.Value is Nothing, Nothing,
        Parameters!ResponseRange.Value))

是规格。因为这部分——Parameters!ResponseRange.Value is Nothing, Nothing,

至于参数,这是它们的外观截图 - 参数是“文本”数据类型:

在此处输入图像描述

4

1 回答 1

6

IIf()该表达式中的检查顺序是奇数;通常,您希望首先处理“成功”或非空情况。此外,您可以将这两项检查合二为一IIf()

=IIf(Not IsNothing(Parameters!ResponseRange.Value) AndAlso 
    Parameters!ResponseRange.Value <> 3, Parameters!ResponseRange.Value, Nothing)

请注意,我用IsNothing()函数替换了Is Nothing表达式。除此之外,表达式本身是有效的。参数的数据类型是ResponseRange什么?我推断这是Integer通过与 的比较3。您是否已将其标记为可以为空?如果您没有使它们可以为空,则无法将原始数据类型Integer设置为您正在尝试的类型。Nothing

您可能需要在查询中设置默认值0-1代替Nothing并随后处理它。

于 2013-01-03T06:40:32.370 回答