为什么此 IIF 比较失败

Why is this IIF comparison failing

我必须使用一个数据库,其中 return 的字符串数据既是字母字符又使用数字字符。例如 1 条记录可能 return 字符串“1000” 下一条可能 return 字符串 "blah" 所有字母字符串将始终是 "Blah"

当数字字符串被 returned 时,我想将其格式化为货币,如果它是 alpha 显示 "Blah"。

这是我尝试过的方法,效果不错???

 =IIf(IsNumeric(First(Fields!MyField.Value, "DataSet1")), FormatCurrency(First(Fields!MyField.Value, "DataSet1")) ,"Blah")

如果 MyField 值是数字字符串,例如“1000”,则它在报告中的格式为 $1,000.00。但是,如果 MyField 值为 "blah",则报告显示 "ERROR"

谁能解释为什么我会看到这种奇怪的行为?

谢谢 佩里

始终评估 IIf 表达式的两个条件,因此即使 IsNumeric("blah") return False.[= 评估 FormatCurrency("blah") 时也会出现问题。 16=]

您可以在 custom code 中使用相同的逻辑解决此问题,您可以在其中使用完整的 If/Then/Else 代码。