当我将两个文本框加在一起时,我得到了一个奇怪的结果......
我如何制作,所以我只将文本框中的两个数字相加,而不是两个文本框本身?
我正在使用表达式
=ReportItems!all_workers.Value + ReportItems!apprentices.Value
每个文本框(报表项)都有自己的表达式,以生成两个数字。
答案 0 :(得分:1)
在您的特定场景中,您可以使用这样的表达式。
= VAL(
Mid(
ReportItems!Textbox1.Value
, InStr(ReportItems!Textbox1.Value, "=")+1
, InStr(ReportItems!Textbox1.Value, ")") - InStr(ReportItems!Textbox1.Value, "=")-1
)
)
+
VAL(
Mid(
ReportItems!Textbox2.Value
, InStr(ReportItems!Textbox2.Value, "=")+1
, InStr(ReportItems!Textbox2.Value, ")") - InStr(ReportItems!Textbox2.Value, "=")-1
)
)
然而,如果你经常这样做,最好写一个函数,只返回你字符串中的数字并使用它。从长远来看,这项工作将会减少。有很多关于如何从字符串中去掉非数字字符的例子。这是一种方法...这将返回一个只有数字0-9
的字符串Public Function getNumeric(value As String) As String
Dim output As String
Dim i as integer
For i = 0 To value.Length - 1
If IsNumeric(value(i)) Then
output = output + value(i)
End If
Next
Return output
End Function
你的表达更加简单。
=Val(Code.getNumeric(ReportItems!Textbox1.Value)) + Val(Code.getNumeric(ReportItems!Textbox2.Value))
答案 1 :(得分:0)
添加文本框通常不是一个好主意,因为如果它们在表中,它们可以重复。你应该做的是在每个占位符中拉出表达式,并将它们添加到另一个文本框中的新表达式中。这是一种更好的计算方法。