北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
请查看 10 个与本帖内容相关的技术文章或帖子列表,确认对您的问题的解答是否会是列表中的其中一个解答。
好像挺麻烦的,看不太懂。我的意思不是转换成金额这一类的,是直接数字大写。就是把序号1——100,转换成:壹、贰、叁、肆、伍、陆、柒……之类的,不是金币,谢谢了。
在下面的这个查询里,把序号转换成汉字大写,您也可以帮我在报表里想办法输出成大写,先谢谢了。
点击下载此附件
1楼已经给你贴出代码了啊,你不想要转换金额,自己简单改一下不就可以了,把元角分替换成空格,把“整”去掉(或注释掉)就是:
程序代码只设定13位能转化,因为数字可以无穷大,实际操作总有个上限,这个上限之内够用就行了,难道你的取数上了13位吗?
只能取一个最佳,请给1楼就是,呵呵
对了,还有一个问题,我刚才把一个号码给删除了,提示“无效使用Null”,我按如下的方法改了(蓝色字),为何不起作用?
Dim i As Integer
Dim qq As String
On Error GoTo CH_Err
If A = Null Then
aa = 0
End If
If A >= 0 Then
aa = Int((A + 0.005) * 100) '将原数扩大100倍
Else
aa = -Int((A + 0.005) * 100)
End If
dd = Len(aa) '读取位数+2,如1位数为3,2位数为4,3位数为5……
For i = dd To 1 Step -1
qq = Mid(aa, dd - i + 1, 1)
bb = Mid("零壹贰叁肆伍陆柒捌玖拾", qq + 1, 1)
If qq <> "0" Then
If ee = True Then
cc = cc + "零" + bb + Mid(" 拾佰仟万拾佰仟亿拾佰仟万拾佰", i, 1)
Else
cc = cc + bb + Mid(" 拾佰仟万拾佰仟亿拾佰仟万拾佰", i, 1)
End If
ee = False
Else
If i = 1 And qq = "0" Then
cc = cc '+ "整"
If aa = 0 Then
cc = ""
End If
Exit For
End If
If (i Mod 4 = 3) Then
If ff < 4 Or i = 3 Then
cc = cc + Mid(" 拾佰仟万拾佰仟亿拾佰仟", i, 1)
End If
End If
ee = True
End If
Next i
If A >= 0 Then
CH = cc
Else
CH = "负-" & cc
End If
CH_Exit:
Exit Function
CH_Err:
If A >= 0 And Len(Int(A)) >= 13 Or A < 0 And Len(Int(A)) >= 14 Then
MsgBox "对不起 !!!" + Chr(13) + "您输入的数值必须是:" & vbNewLine & "整数位不超过 13 位。", vbOKOnly, "警告"
Else
MsgBox Error$
Resume CH_Exit
End If
End Function
或将红色的改为:
If IsNull(A) Or A = 0 Then
CH = "零"
Exit Function
End If
Access软件网 版权所有 CopyRight 2006-2030
上海盟威软件有限公司 提供支持
沪ICP备12024966号-4