1

我的报告中有一些公式,为了防止除以零,我在表达式字段中这样做:

=IIF(字段!F1.Value <> 0,字段!F2.Value/字段!F1.Value,0)

这通常可以正常工作,但是当 F1 和 F2 都为零时,我在报告中收到“#Error”,并收到以下警告:“文本框‘textbox196’的值表达式包含错误:试图除以零。 "

这是为什么?

4

3 回答 3

3

IIF() 只是一个函数,与任何函数一样,所有参数都在调用函数之前进行评估,包括Fields!F2.Value/Fields!F1.Value. 换句话说,不管Fields!F1.Value <> 0条件如何,它都会尝试除以零。

于 2008-10-01T16:34:09.050 回答
2

必须有比这更漂亮的方法,但这应该有效:

=IIF(Fields!F1.Value <> 0, Fields!F2.Value / 
   IIF(Fields!F1.Value <> 0, Fields!F1.Value, 42), 0)
于 2008-10-01T18:27:11.853 回答
0

但是,您可以使用

if Fields!F1.Value <> 0 
then 
Fields!F2.Value/Fields!F1.Value
else 0

这应该有效,因为如果“if”部分为假,它不会评估 then 子句。

于 2011-11-30T10:26:39.990 回答