设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2618|回复: 7
打印 上一主题 下一主题

[窗体] 请教!如何限制窗体中某字段不能键盘输入数据只能通过扫描条码输入

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-9 23:19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同题!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-3-10 10:37:40 | 只看该作者
通过KeyUp事件计时,超过0.1秒的即为键盘输入。时间关系【今天有约】,下次再做例子。
3#
 楼主| 发表于 2013-3-10 17:39:40 | 只看该作者
roych 发表于 2013-3-10 10:37
通过KeyUp事件计时,超过0.1秒的即为键盘输入。时间关系【今天有约】,下次再做例子。

谢谢版主
期待你的例子啊!!!
4#
发表于 2013-3-11 02:48:44 | 只看该作者
扫描枪是模拟键盘输入并以Enter键结束,但读取时间比键盘输入要快很多。

通过这个原理,可以在获取焦点时记录一个时间,输入完成,按下Enter键时再记录一个时间。两个时间之差如果超过规定时间(例如0.5秒或者1秒),即可判断为手动输入。

从原理上看代码应该没问题,但由于手头上缺乏设备,因此也不能保证测试是否正常。请楼主自行测试,如有问题,请及时提出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
 楼主| 发表于 2013-3-11 09:57:43 | 只看该作者
本帖最后由 sxgaobo 于 2013-3-11 09:58 编辑
roych 发表于 2013-3-11 02:48
扫描枪是模拟键盘输入并以Enter键结束,但读取时间比键盘输入要快很多。

通过这个原理,可以在获取焦点时 ...


谢谢版主!
取获取焦点时记录一个时间为第一时间,是不是太早啊?!
我用的是键按下和键释放事件,测试成功!
Option Compare Database
Option Explicit
Dim t1, t2

Private Sub 编号_KeyDown(KeyCode As Integer, Shift As Integer)
t1 = Timer()
End Sub

Private Sub 编号_KeyUp(KeyCode As Integer, Shift As Integer)
t2 = Timer()
If DateDiff("s", t1, t2) > 1500 Then
   Me.编号 = Null
End If
End Sub
各位是否有更好的方法啊!?
6#
发表于 2013-3-11 12:18:49 | 只看该作者
sxgaobo 发表于 2013-3-11 09:57
谢谢版主!
取获取焦点时记录一个时间为第一时间,是不是太早啊?!
我用的是键按下和键释放事件,测 ...

我觉得,这个问题基本只能凭借输入速度来判断,可能没有更好的方式了。
7#
发表于 2015-4-24 14:55:37 | 只看该作者
good point
回复

使用道具 举报

8#
发表于 2015-4-24 15:49:23 | 只看该作者
是不是可以再创建个隐藏控件,扫描枪数据先输入到这个隐藏控件再用代码更新相应字段,这个字段不就可以设置成锁定了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 14:42 , Processed in 0.099359 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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