|
报表上有二个文件框,一个是小写,另外一个是金额大写,名称分别为xiaoxie , daxie 根据小写的内容转为金额大写。
程序如下:
Option Compare Database
Public Function rmb(s As Currency) As String
Dim s1, s2, C1, C2, DX, X As String
Dim L As Integer
s1 = LTrim(Str$(Abs(s)))
L = Len(s1)
Select Case L - InStr(s1, ".")
Case L
s2 = s1 + ".00"
Case 1
s2 = s1 + "0"
Case 2
s2 = s1
End Select
L = Len(s2)
DX = ""
C1 = "零壹贰叁肆伍陆柒捌玖"
C2 = "分角 元拾佰仟万拾佰仟亿拾佰"
Do While L >= 1
X = Mid(s2, Len(s2) - L + 1, 1)
DX = DX + IIf(X <> ".", Mid(C1, Val(X) + 1, 1) + " " + Trim(Mid(C2, (L - 1) + 1, 1)) + " ", "")
L = L - 1
Loop
rmb = DX + " 整"
End Function
rmb函数完成后,在后面报表主体中我调用它:
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
Dim sss As Single
sss = Me.xiaoxie
Me.daxie = rmb(sss)
End Sub
可运行报表时显示byref参数类型不符。
我注意到rmb是string,而我的赋值sss是single,二者如何转换?
可当我把sss换成固定数值时,一切正常,可涉及到me.xiaoxie时就不行了。
对于access里的VBA编辑我才学不久,水平很菜,希望高手坐答,不胜感激! |
|