如何在报告(.rdlc)中有不同类型的变量

How to have different type of variable in report(.rdlc)

我在 MS-access 中有一个 table 是这样的:

本栏目格式为短文本

当我想在报表设计器中使用它时,我想将它的数字转换为只有 2 个十进制数,我使用以下表达式来做到这一点:

=IIF(isNumeric(Fields!Val.Value),FormatNumber(Fields!Val.Value,2),(Fields!Val.Value))

此代码在 number 变量中执行我想要的操作,而不是获取 > 305 我得到 #Error

问题出在哪里?

在 Access 中,IIf() 中的所有表达式都必须能够计算,即使不是 return 结果中的表达式。字符串 '>305' 上的 FormatNumber() 错误并导致 IIf() 到 return 错误。这里真正的问题是糟糕的设计。数字数据应位于数字类型字段中。

使用了多少种比较运算符或其他非数字字符?是否有 <=、>=、< 比较运算符?如果前缀字符存在,您的代码将必须提取它们。操作字符串时,结构的一致性至关重要。如果前缀总是只有 '>':

=IIf(IsNumeric([Val]), FormatNumber(替换([Val],">",""), 2), [Val])

否则,可能需要 VBA 中的自定义函数。

注意:Val 是 Access 中的保留字(它是一个函数)- 应避免将保留字作为任何名称。