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

时间:2017-03-07 12:43:02

标签: rdlc

我在MS-access中有一张表格,如下所示:

enter image description here

此列的格式为ShortText

当我想在报表设计器中使用它时,我想将其编号转换为只有2位十进制数,我使用以下表达式执行此操作:

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

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

enter image description here

问题出在哪里?

1 个答案:

答案 0 :(得分:1)

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

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

= IIf(IsNumeric([Val]),FormatNumber(替换([Val],&#34;&gt;&#34;,&#34;&#34;),2),[Val])< / p>

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

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