设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: wuheng
打印 上一主题 下一主题

[其它] [求助] 关于货币金额逐位显示的问题

[复制链接]
11#
 楼主| 发表于 2005-10-15 20:22:00 | 只看该作者
接下来的问题:   想在金额栏那里随机加上人民币符号,如百位有数字,则在千位栏加¥,如千位有数字则在万位栏加,类推。要怎么做才能实现??请指教!                    谢谢!!                                                wuheng敬上                     
12#
发表于 2005-10-15 22:23:00 | 只看该作者
以下是引用wuheng在2005-10-15 12:22:00的发言:

接下来的问题:

   想在金额栏那里随机加上人民币符号,如百位有数字,则在千位栏加¥,如千位有数字则在万位栏加,类推。要怎么做才能实现??请指教!

                    谢谢!!

                                                wuheng敬上

                     



Public Function GetBit(BitNo As Integer, Value As Currency) As String

    If BitNo <= -Int(-Log(Value) / Log(10#)) - 1 Then GetBit = Int(CCur(Value / 10 ^ BitNo)) Mod 10

    If BitNo = -Int(-Log(Value) / Log(10#))  Then GetBit = "¥"

End Function

[此贴子已经被作者于2005-10-15 14:23:40编辑过]

13#
发表于 2005-10-15 22:49:00 | 只看该作者
我怎么看不懂呢,但我还想在此提一问:“我也复制一段函数,但打印时在人民币符号前显0,怎么才能消除。”谢谢。
14#
 楼主| 发表于 2005-10-15 23:17:00 | 只看该作者
  LucasLynn你太伟大了!!!感谢!!感谢!!                                             wuheng敬上[em17][em17]
15#
发表于 2005-10-21 17:23:00 | 只看该作者
LucasLynn,你好,你的程序都觉得很独特。下面转换用通俗的说法其目的是什么呀 -Int(-Log(Value) / Log(10#)) - 1       Int(CCur(Value / 10 ^ BitNo)) Mod 10

16#
发表于 2005-10-26 03:41:00 | 只看该作者


在你的程序中插入一个模块,模块代码如下:
Public Function GetBit(BitNo As Integer, Value As Currency) As String

    If BitNo <= -Int(-Log(Value) / Log(10#)) - 1 Then GetBit = Int(CCur(Value / 10 ^ BitNo)) Mod 10

End Function
在窗体上每个数字位置放一个文本框,数据源设定为:这个好像不行,当金额=98765432.13时,getbit(-2,金额)就会溢出,不知是什么原因?
17#
发表于 2005-10-26 03:56:00 | 只看该作者
当金额=98765432.13时,GETBIT(-2,金额)就会溢出
18#
发表于 2005-10-27 15:56:00 | 只看该作者
是大写数额吗???
19#
发表于 2005-10-27 22:42:00 | 只看该作者
以下是引用hzdzykf在2005-10-25 19:41:00的发言:













在你的程序中插入一个模块,模块代码如下:

Public Function GetBit(BitNo As Integer, Value As Currency) As String

    If BitNo <= -Int(-Log(Value) / Log(10#)) - 1 Then GetBit = Int(CCur(Value / 10 ^ BitNo)) Mod 10

End Function

在窗体上每个数字位置放一个文本框,数据源设定为:

这个好像不行,当金额=98765432.13时,getbit(-2,金额)就会溢出,不知是什么原因?



原因就是数额太大了,编写的时候没考虑你要开这么大额的发票。[em07]
20#
发表于 2005-10-27 22:44:00 | 只看该作者
以下是引用ey1001在2005-10-21 9:23:00的发言:

LucasLynn,

你好,你的程序都觉得很独特。下面转换用通俗的说法其目的是什么呀

-Int(-Log(Value) / Log(10#)) - 1      

Int(CCur(Value / 10 ^ BitNo)) Mod 10



上面一行是获得小数点前的位数,以确定从哪一位开始返回数据,之前的就显示为空(否则会显示0),因为VBA中没有Log10函数,所以只能LogN/Log10,这是基本的对数计算公式。

下面一行是取单个位的数字。

[此贴子已经被作者于2005-10-27 14:45:03编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 11:14 , Processed in 0.096866 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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