Office中国论坛/Access中国论坛
标题:
[分享]没事儿自己写了一个小写数字转换成大写的函数
[打印本页]
作者:
cjnt007
时间:
2005-1-20 17:00
标题:
[分享]没事儿自己写了一个小写数字转换成大写的函数
'数级内各数位的单位
Function Unite(ByVal CurrentU As Integer) As String
u = CurrentU Mod 4
Select Case u
Case 1
Unite = ""
Case 2
Unite = "十"
Case 3
Unite = "百"
Case 0
Unite = "千"
End Select
End Function
'生成数级单位
Function LevelUnite(ByVal CurrU As Integer) As String
If CurrU Mod 4 = 1 Then
Select Case CurrU \ 4
Case 0
LevelUnite = ""
Case 1
LevelUnite = "万"
Case 2
LevelUnite = "亿"
Case 3
LevelUnite = "兆"
End Select
Else
LevelUnite = ""
End If
End Function
'转换一个数位上的数
'N 要转换的数字
'u 所在数位
'num_l 转换数的总位数
Function TranCurrNum(N As String, u As Integer, num_l As Integer) As String
Dim num(9) As String
num(1) = "一"
num(2) = "二"
num(3) = "三"
num(4) = "四"
num(5) = "五"
num(6) = "六"
num(7) = "七"
num(8) = "八"
num(9) = "九"
num(0) = "零"
'每级的十位如果是最高位,且数字为1时,以“十”-“十九”出现,不出现“一十几”
If Not (u Mod 4 = 2 And N = "1" And u = num_l) Then
TranCurrNum = num(Asc(N) - 48)
End If
'如果数字为0,则返回零,不附加单位
If N <> "0" Then
TranCurrNum = TranCurrNum & Unite(u)
End If
End Function
'要将小写数转换成大写,就用它了。
Function XtoD(Optional num As String = "", Optional UniteName As String = "") As String
Dim temp As String, temp_l As String, i As Integer
Dim num_len As Integer, num_len_l As Integer
If Len(num) = 0 Then
Exit Function
End If
temp = num & ""
num_len = Len(temp)
For i = 1 To num_len
num_len_l = Len(temp)
temp_l = Left(temp, 1)
If Not (temp_l = "0" And Right(XtoD, 1) = "零") Then
XtoD = XtoD & TranCurrNum(temp_l, num_len_l, num_len)
End If
'每个数级结束时,如末尾有“零”则去掉
If num_len_l Mod 4 = 1 And Right(XtoD, 1) = "零" Then
XtoD = Left(XtoD, Len(XtoD) - 1)
End If
'每个数级末尾加本数级的单位
XtoD = XtoD & LevelUnite(num_len_l)
temp = Mid(temp, 2)
Next i
XtoD = XtoD & UniteName
End Function
作者:
officezg
时间:
2005-1-27 04:48
怎样用呀?本人是菜鸟不懂喔.....本人现在正想解决这种能把小写数字转换成大写的问题.也就是在已经输入有数据的Access表中把小写数字(如:1,2,3...)转换成大写(如:一,二,三).....请大家帮帮忙呀.......本人不想一一改啊........有什么好办法么?
作者:
cjnt007
时间:
2005-2-6 21:58
将代码全部复制到一模块中。再在需要使用的地方使用xtod(需要转换的小写数,[需要使用的单位]),后一个参数可缺省。另外这个函数我没有全面测试过,可能还存在一些小问题,所以不能保证你使用中的正确性。
作者:
tmtony
时间:
2005-2-8 19:34
不错,可再加多个参数, 改进一下,让用户选择是用“一 二 三 四”还是 “壹 贰 叁 肆" 这种格式.
作者:
yefei80
时间:
2006-11-25 21:43
规范化发挥规范化
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3