设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 3250|回复: 21
打印 上一主题 下一主题

[表] 关于货币金额逐位显示的出错问题。LucasLynn,大侠快来看看

[复制链接]
跳转到指定楼层
1#
发表于 2005-12-21 21:08:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
LucasLynn,我在用你写的关于货币金额逐位显示模块时,出现错误,如“

当数字为10,100,1000,10000,100000,1000000,....时,首位1没有显示出来。

具体代码见发下网址

http://www.office-cn.net/forum.php?mod=viewthread&tid=32946&replyID=&skin=1

这要如何解决,请LucasLynn和各位大侠再次赐教,谢谢!

                                                                                    wuheng敬上
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
22#
发表于 2008-6-6 17:28:20 | 只看该作者
呵呵,好好顶一下
21#
发表于 2008-6-6 12:41:12 | 只看该作者
[:34] [:34]
20#
 楼主| 发表于 2005-12-28 18:03:00 | 只看该作者
谢谢各位大侠:[em17]

   象0。XX那么小的数值,我想应该用少用到的吧?至少我不用,(呵呵)

不管怎么样,再次谢谢各位了

19#
发表于 2005-12-26 01:43:00 | 只看该作者
以下是引用海狸先生在2005-12-24 16:50:00的发言:


呵呵,是有这个问题,一个个小小的错误 

Dim intNo As Integer

改成 Dim intNo As Currency

如果:0.xx 有问题.   另外楼上的函数也有问题。
18#
发表于 2005-12-25 06:52:00 | 只看该作者
转贴:数字在支票打印中分栏数字的函数

s-要分栏的数字
N 分栏为1 角为2 元为4 十为5....... 依次类推

Function Get_s(ByVal s As Variant, ByVal n As Variant) As Variant

Dim i As Variant

If s = 0 Then
  Exit Function
End If

i = Len(s)  ‘取数字长度

If i < 3 Then     ’没小数位,补2位小数
  s = s & ".00"
End If

If Right(Left(s, i - 1), 1) = "." Then  ‘只有一位小数 , 补齐2位
s = s & "0"
End If

i = Len(s)  ‘从新取补起小数位数字长度

If i = n - 1 Then     ’在分栏第一个碰到没数字的拦赋¥
  Get_s = "¥"
  Exit Function
End If

If i < n Then         ‘ 在没数字的拦位赋空值
  Get_s = ""
  Exit Function
End If

Get_s = Right(Left(s, i - n + 1), 1)  '取值

End Function
17#
发表于 2005-12-25 03:08:00 | 只看该作者
个人认为16楼(楼上)的方法好,无金额时不会出现错误,如果将"零壹贰叁肆伍陆柒捌玖"改为"0123456789",还可以变成小写货币金额逐位显示

[此贴子已经被作者于2005-12-24 19:09:05编辑过]

16#
发表于 2005-12-25 02:14:00 | 只看该作者
凑个热闹:

Public Function CHN(BigNo As String, IntNo As Integer)
    Const cnum = "零壹贰叁肆伍陆柒捌玖"
    CHN = ""
    sNum = Trim(BigNo * 100)
    For I = 1 To Len(sNum)
         CHN = CHN + Mid(cnum, Mid(sNum, I, 1) + 1, 1)
    Next I
    CHN = StrReverse(CHN) & "¥"
    For I = 1 To Len(CHN)
         If I = IntNo Then
         CHN = Mid(CHN, I, 1)
         End If
    Next I
    If IntNo >= I Then CHN = ""
End Function


调用方式,从分位起,依次为:CHN(金额, 1);CHN(金额, 2);CHN(金额, 3)..........直到最高位。结果是逐位显示中文大写数字。


15#
发表于 2005-12-25 00:50:00 | 只看该作者
呵呵,是有这个问题,一个个小小的错误 

Dim intNo As Integer

改成 Dim intNo As Currency
14#
发表于 2005-12-25 00:31:00 | 只看该作者
这样某些数据前会加 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-13 19:10 , Processed in 0.110756 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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