访问文本框-限制小数位输入

我只花了一天半的时间在论坛上搜索此解决方案,但它似乎还没有出现,因此我正在分享。

在Access中,您可以使用Decimal Places属性指定表单控件显示的小数位数。 您还可以在表设计中指定存储数据的小数位数。 不幸的是,这两个都不限制数据。 将小数位属性设置为2的控件可以具有1.23456的条目! Access接受输入。

这杀死了我的一些表格计算。 我需要一种不会引起其他事件触发的解决方案,如果您仅通过使用Round()更改控件OnExit的值,就会发生这种情况。 我还需要一种可以轻松地在6种表单的360个文本框中实现的解决方案。 为每个有限的击键编写一个Sub不会发生。

解:

私有子Form_KeyPress(KeyAscii作为整数)

如果InStr(1,Me.Controls(Me.ActiveControl.Name).Text,“。”)<> 0然后

如果Me.Controls(Me.ActiveControl.Name).SelStart> = InStr(1,Me.Controls(Me.ActiveControl.Name).Text,“。”)或Me.Controls(Me.ActiveControl.Name).SelStart> = InStr(1,Me.Controls(Me.ActiveControl.Name).Text,“。”)+ 1然后

如果Len(Me.Controls(Me.ActiveControl.Name).Text)= InStr(1,Me.Controls(Me.ActiveControl.Name).Text,“。”)+ 2然后

如果KeyAscii <> 8然后

KeyAscii = 0

万一

万一

ElseIf Me.Controls(Me.ActiveControl.Name).SelStart> = InStr(1,Me.Controls(Me.ActiveControl.Name).Text,“。”)+ 2然后

如果KeyAscii <> 8然后

KeyAscii = 0

万一

万一

万一

结束子

上面的代码是从FORM的KeyPress事件触发的,并作用于窗体上的所有控件。 它确定ActiveControl的Text值和控件中的光标位置。 使用这些,它将基于光标相对于“。”位置的位置来允许或忽略按键。

若要工作,窗体的“键预览”属性也需要设置为“是”。

希望这对某人有帮助。

From: https://bytes.com/topic/visual-basic/insights/888922-access-textboxes-limiting-decimal-place-entry

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值