设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 请教如何限制录入金额,只能小数点后两位?

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-21 23:08:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教如何限制在文本框中录入金额只能小数点后两位?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2008-6-23 15:24:20 | 只看该作者
ding shang

点击这里给我发消息

3#
发表于 2008-6-23 17:08:45 | 只看该作者
文本框“属性”中设置,掩码使用#或A都行。
4#
 楼主| 发表于 2008-6-23 21:00:56 | 只看该作者
可能是我没表达清楚,金额是包括整数和小数,要求限制录入到分为止.
access的字段设为货币,也只是显示两位小数,不控制的话录入员常误加了多位小数,这样就造成类计时出现误差错误.
因整数部份的位数不确定,用掩码不可行.
5#
 楼主| 发表于 2008-6-23 21:20:06 | 只看该作者
用SQL做数据表就没这样的问题,它小数的位数设定有效.

点击这里给我发消息

6#
发表于 2008-6-23 21:46:17 | 只看该作者
那末在作累计时使用Round函数吧,一般情况下,规范的做法是不在输入数据时就做数字修约,计算中途如果要修约的话,也要保留比最终需要保留的小数位数要多一些,并且这些修约不能是随意的,而是要按照国家数字修约的标准来进行。你可按照你所在行业的规定来设计你的计算公式。
7#
 楼主| 发表于 2008-6-24 01:59:18 | 只看该作者
谢谢!
我还是想在前期能够制约,在会计核算中收支的款项不存在角分以下的数.

点击这里给我发消息

8#
发表于 2008-6-24 08:35:59 | 只看该作者
那就在该文本框更新后添加:
[文本框] = Round([文本框], 2)
不过该函数是四舍六入的,如果要四舍五入可在论坛上搜索大师们的自定义函数。
如果数据不要修约只要求保留小数后两位的话可以变通解决:文本框更新后
文本框= Left([文本框], InStr([文本框], ".") + 2)
9#
发表于 2008-6-24 09:40:33 | 只看该作者
原帖由 wjb5645 于 2008-6-24 01:59 发表
谢谢!
我还是想在前期能够制约,在会计核算中收支的款项不存在角分以下的数.

那就判断一下嘛
Len(Me.文本0) - InStr(Me.文本0, ".") > 2
则提示
10#
发表于 2008-6-24 10:55:53 | 只看该作者
原帖由 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-9 02:53 , Processed in 0.103156 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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