设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2862|回复: 10
打印 上一主题 下一主题

[与其它组件] 请教一下,在ACCESS中怎么将人民币小写格式的转变为大写的格式,万分感谢!

[复制链接]
跳转到指定楼层
1#
发表于 2006-2-13 20:51:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下,在ACCESS中怎么将人民币小写格式的转变为大写的格式,万分感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-2-13 20:55:00 | 只看该作者
比如将人民币120.36元转变为壹百贰拾元叁角陆分,高手指点一下,谢谢了!
3#
发表于 2006-2-13 21:15:00 | 只看该作者
不明白,同问!
4#
发表于 2006-2-15 22:24:00 | 只看该作者
自己写个函数就行了。
5#
发表于 2006-2-15 22:36:00 | 只看该作者
Private Function CCh(N1) As String


Select Case N1


Case 0


CCh = "零"


Case 1


CCh = "壹"


Case 2


CCh = "贰"


Case 3


CCh = "叁"


Case 4


CCh = "肆"


Case 5


CCh = "伍"


Case 6


CCh = "陆"


Case 7


CCh = "柒"


Case 8


CCh = "捌"


Case 9


CCh = "玖"


End Select


End Function


'名称: ChMoney


'得到数字 N1 的汉字大写


'最大为 千万位


'O 返回 ""


Public Function ChMoney(N1) As String


Dim tMoney As String


Dim lMoney As String


Dim tn '小数位置


Dim s1 As String '临时STRING 小数部分


Dim s2 As String '1000 以内


Dim s3 As String '10000


If N1 = 0 Then


ChMoney = " "


Exit Function


End If


If N1 < 0 Then


ChMoney = "负" + ChMoney(Abs(N1))


Exit Function


End If


tMoney = Trim(Str(N1))


tn = InStr(tMoney, ".") '小数位置


s1 = ""


If tn <> 0 Then


ST1 = Right(tMoney, Len(tMoney) - tn)


If ST1 <> "" Then


t1 = Left(ST1, 1)


ST1 = Right(ST1, Len(ST1) - 1)


If t1 <> "0" Then


s1 = s1 + CCh(Val(t1)) + "角"


End If


If ST1 <> "" Then


t1 = Left(ST1, 1)


s1 = s1 + CCh(Val(t1)) + "分"


End If


End If


ST1 = Left(tMoney, tn - 1)


Else


ST1 = tMoney


End If


s2 = ""


If ST1 <> "" Then


t1 = Right(ST1, 1)


ST1 = Left(ST1, Len(ST1) - 1)


s2 = CCh(Val(t1)) + s2


End If


If ST1 <> "" Then


t1 = Right(ST1, 1)


ST1 = Left(ST1, Len(ST1) - 1)


If t1 <> "0" Then


s2 = CCh(Val(t1)) + "拾" + s2


Else


If Left(s2, 1) <> "零" Then s2 = "零" + s2


End If


End If


If ST1 <> "" Then


t1 = Right(ST1, 1)


ST1 = Left(ST1, Len(ST1) - 1)


If t1 <> "0" Then


s2 = CCh(Val(t1)) + "佰" +
6#
发表于 2006-2-22 07:10:00 | 只看该作者
是自己写的吗?谢谢!

[此贴子已经被作者于2006-2-21 23:10:41编辑过]

7#
发表于 2006-2-24 19:55:00 | 只看该作者
如何使用?
8#
发表于 2006-6-6 08:14:00 | 只看该作者
比如有个字段TEXT1是123,可以在字段处输入 =CCh(TEXT1)  即刻转换为大写
9#
发表于 2006-6-6 23:14:00 | 只看该作者
代码写在哪里啊?
10#
发表于 2006-6-7 00:23:00 | 只看该作者
用这个也行

Function Etoc(thenumber)
Dim Money, i, String1, String2, length, checkp '定义变量
Dim one(), onestr() '定义数组

String1 = "零壹贰叁肆伍陆柒捌玖"
String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫"

checkp = InStr(thenumber, ".") '判断是否含有小数位
If checkp <> 0 Then
thenumber = Replace(thenumber, ".", "") '去除小数位
End If

length = Len(thenumber) '取得数据长度
ReDim one(length - 1) '重新定义数组大小
ReDim onestr(length - 1) '重新定义数组大小

For i = 0 To length - 1

   one(i) = Mid(thenumber, i + 1, 1) '循环取得每一位的数字
   one(i) = Mid(String1, one(i) + 1, 1) '循环取得数字对应的大写

   
              If checkp = 0 Then
                                                  '不含有小数的数据其数字对应的单位
                   onestr(i) = Mid(String2, 14 - length + i, 1)
                Else
                                               '含有小数的数据其数字对应的单位
                onestr(i) = Mid(String2, 15 - length + i + Len(thenumber) - checkp, 1)
                End If
  
   one(i) = one(i) & onestr(i) '将数字与单位组合
Next

    Money = Replace(Join(one), " ", "") '取得数组中所有的元素,并连接起来
    Money = Replace(Money, "零元", "元")
    Money = Replace(Money, "零万", "万")
    Money = Replace(Money, "零亿", "亿")
    Money = Replace(Money, "零仟", "零")
    Money = Replace(Money, "零佰", "零")
    Money = Replace(Money, "零拾", "零")

Do While Not InStr(Money, "零零") = 0
Money = Replace(Money, "零零", "零")
Loop
Etoc = Money
Debug.Print Money
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 22:53 , Processed in 0.083703 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表