Office中国论坛/Access中国论坛

标题: 请教如何限制录入金额,只能小数点后两位? [打印本页]

作者: wjb5645    时间: 2008-6-21 23:08
标题: 请教如何限制录入金额,只能小数点后两位?
请教如何限制在文本框中录入金额只能小数点后两位?
作者: wjb5645    时间: 2008-6-23 15:24
ding shang
作者: wang1950317    时间: 2008-6-23 17:08
文本框“属性”中设置,掩码使用#或A都行。
作者: wjb5645    时间: 2008-6-23 21:00
可能是我没表达清楚,金额是包括整数和小数,要求限制录入到分为止.
access的字段设为货币,也只是显示两位小数,不控制的话录入员常误加了多位小数,这样就造成类计时出现误差错误.
因整数部份的位数不确定,用掩码不可行.
作者: wjb5645    时间: 2008-6-23 21:20
用SQL做数据表就没这样的问题,它小数的位数设定有效.
作者: wang1950317    时间: 2008-6-23 21:46
那末在作累计时使用Round函数吧,一般情况下,规范的做法是不在输入数据时就做数字修约,计算中途如果要修约的话,也要保留比最终需要保留的小数位数要多一些,并且这些修约不能是随意的,而是要按照国家数字修约的标准来进行。你可按照你所在行业的规定来设计你的计算公式。
作者: wjb5645    时间: 2008-6-24 01:59
谢谢!
我还是想在前期能够制约,在会计核算中收支的款项不存在角分以下的数.
作者: wang1950317    时间: 2008-6-24 08:35
那就在该文本框更新后添加:
[文本框] = Round([文本框], 2)
不过该函数是四舍六入的,如果要四舍五入可在论坛上搜索大师们的自定义函数。
如果数据不要修约只要求保留小数后两位的话可以变通解决:文本框更新后
文本框= Left([文本框], InStr([文本框], ".") + 2)
作者: fswxs    时间: 2008-6-24 09:40
原帖由 wjb5645 于 2008-6-24 01:59 发表
谢谢!
我还是想在前期能够制约,在会计核算中收支的款项不存在角分以下的数.

那就判断一下嘛
Len(Me.文本0) - InStr(Me.文本0, ".") > 2
则提示
作者: mqmelon    时间: 2008-6-24 10:55
原帖由 wjb5645 于 2008-6-23 21:00 发表
可能是我没表达清楚,金额是包括整数和小数,要求限制录入到分为止.
access的字段设为货币,也只是显示两位小数,不控制的话录入员常误加了多位小数,这样就造成类计时出现误差错误.
因整数部份的位数不确定,用掩码不可 ...


楼主在文本框的更新后事件中使用以下代码试试:

Dim NumInput As Double
NumInput = CDbl(Left(CStr((Me.Text2 - Fix(Me.Text2)) * 100), 2)) / 100
Me.Text2 = Fix(Me.Text2) + NumInput
作者: wjb5645    时间: 2008-6-25 18:09
谢谢各位!
办法还有这么多,再次感谢!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3