设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[表] 如何将一个access数字字段转换为大写金额

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-10 21:07:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何将一个access数字字段转换为大写金额
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-4-10 21:11:10 | 只看该作者
本帖最后由 todaynew 于 2009-4-10 21:14 编辑

一会给你一个函数便解决了。

把楼下的函数拷贝到公共模块中,然后在需要的地方引用之即可。
3#
发表于 2009-4-10 21:12:25 | 只看该作者
Function RMB(x As Double) As String
Dim i1 As Long, i2 As Long, j As Long, m As Long, strm(15) As String
Dim strB1 As String, strB2 As String
RMB = str(Round(x, 4))
j = InStr(1, RMB, ".", 1)
If j = 0 Then
    strB1 = Trim(RMB)
    strB2 = ""
Else
    strB1 = Trim(Mid(RMB, 1, j - 1))
    strB2 = Trim(Mid(RMB, j + 1, 4))
End If
strB1 = Replace(Replace(Replace(Replace(Replace(strB1, "0", "零"), "1", "壹"), "2", "貳"), "3", "叁"), "4", "肆")
strB1 = Replace(Replace(Replace(Replace(Replace(strB1, "5", "伍"), "6", "陆"), "7", "柒"), "8", "捌"), "9", "玖")
strB2 = Replace(Replace(Replace(Replace(Replace(strB2, "0", "零"), "1", "壹"), "2", "貳"), "3", "叁"), "4", "肆")
strB2 = Replace(Replace(Replace(Replace(Replace(strB2, "5", "伍"), "6", "陆"), "7", "柒"), "8", "捌"), "9", "玖")
i1 = Len(strB1): i2 = Len(strB2)
For j = 1 To i1
    strm(j) = Mid(strB1, i1 - j + 1, 1)
Next
strB1 = ""
For j = 1 To i1
    Select Case j
            Case 1
                If strm(j) = "零" Then
                    strB1 = strB1
                Else
                    strB1 = strm(j) & strB1
                End If
            Case 2
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "拾" & strB1
                End If
            Case 3
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "佰" & strB1
                End If
            Case 4
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "仟" & strB1
                End If
            Case 5
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        If strm(j) = "零" And strm(j + 1) = "零" And strm(j + 2) = "零" And strm(j + 3) = "零" Then
                            strB1 = strB1
                        Else
                            strB1 = "万" & strB1
                        End If
                    Else
                        strB1 = strm(j) & "万" & strB1
                    End If
                Else
                    strB1 = strm(j) & "万" & strB1
                End If
            Case 6
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "拾" & strB1
                End If
            Case 7
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "佰" & strB1
                End If
            Case 8
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "仟" & strB1
                End If
            Case 9
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        If strm(j) = "零" And strm(j + 1) = "零" And strm(j + 2) = "零" And strm(j + 3) = "零" Then
                            strB1 = strB1
                        Else
                            strB1 = "亿" & strB1
                        End If
                    Else
                        strB1 = strm(j) & "亿" & strB1
                    End If
                Else
                    strB1 = strm(j) & "亿" & strB1
                End If
            Case 10
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "拾" & strB1
                End If
            Case 11
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "佰" & strB1
                End If
            Case 12
                If strm(j) = "零" Then
                    If strm(j - 1) = "零" Then
                        strB1 = strB1
                    Else
                        strB1 = strm(j) & strB1
                    End If
                Else
                    strB1 = strm(j) & "仟" & strB1
                End If
    End Select
Next
Select Case i2
        Case 0
           strB2 = "整"
        Case 1
            strB2 = Mid(strB2, 1, 1) & "角" & "零分"
        Case 2
            strB2 = Mid(strB2, 1, 1) & "角" & Mid(strB2, 2, 1) & "分"
        Case 3
            strB2 = Mid(strB2, 1, 1) & "角" & Mid(strB2, 2, 1) & "分" & Mid(strB2, 3, 1) & "厘"
        Case 4
            strB2 = Mid(strB2, 1, 1) & "角" & Mid(strB2, 2, 1) & "分" & Mid(strB2, 3, 1) & "厘" & Mid(strB2, 4, 1) & "毫"
End Select
strB1 = strB1 & IIf(i1 = 0, "", "元")
If RMB = "0" Then
    RMB = ""
Else
    RMB = strB1 & strB2
End If
End Function
4#
 楼主| 发表于 2009-4-10 21:18:11 | 只看该作者
给我的代码怎么用?
5#
发表于 2009-4-10 21:21:06 | 只看该作者
本帖最后由 todaynew 于 2009-4-10 21:32 编辑

拷贝到公共模块中,便可以在任何地方使用了。比如在查询中。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
发表于 2009-4-10 22:08:18 | 只看该作者
谢谢分享。收藏了。
7#
发表于 2009-4-10 22:12:36 | 只看该作者
8#
 楼主| 发表于 2009-4-15 22:58:18 | 只看该作者
谢谢大家帮助
9#
发表于 2009-4-16 09:25:51 | 只看该作者
厉害啊,自定义函数就是强大~~~~~~
10#
发表于 2010-4-15 11:36:55 | 只看该作者
非常感谢todaynew ,实用啊!!!!!!!!!!!1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 20:54 , Processed in 0.097037 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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