设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 【求助】扫描枪录入序列号如何处理主键重复?

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-12 12:01:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 aslxt 于 2011-2-12 12:08 编辑

如题,在扫描枪录入序列号(主键),如果重复录入了,如何捕捉该错误代码,在access的提示以前自定义处理?
另外请问,不同厂家的不同产品有没有序列号重复的可能性?例如手机的串号

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-2-12 12:32:11 | 只看该作者
3#
发表于 2011-2-12 12:51:41 | 只看该作者
序列号一般不会有重复的
建议你可以写个函数查询数据库
如果有重复的就弹出个对话框显示当前重复的序列号
可以在里面进行修改
4#
 楼主| 发表于 2011-2-12 18:08:08 | 只看该作者
本帖最后由 aslxt 于 2011-2-12 18:14 编辑

已经找到一个解决方法,就是在子窗体的事件中加入以下代码,其中“串号1"是绑定到序列号的文本框:

Private Sub 串号1_KeyPress(KeyAscii As Integer)
On Error GoTo Err_串号1_KeyPress '如果有错误,特别是序列号重复(扫描操作可能会产生重复的动作)
  '由于扫描枪在文本框中扫描一个序列号后不能自动跳到下一条记录,需要用下面的语句来让记录跳到下一个,当然也可以是跳到新纪录。扫描枪每扫描完一个条码是不是同时附加一个回车符,不能确定,但是以下代码发现自行正常,还望高手指教?
  If KeyAscii = 13 Then  '判断扫描枪是否扫描完一个条码,如果是,就跳转到下一条记录
      DoCmd.GoToRecord , , acNext
  End If
Exit_串号1_KeyPress:
    Exit Sub
Err_串号1_KeyPress:
    备注.SetFocus   '执行到这一句的时候,说明录入发生了错误,就不能保存记录。只好在子窗体的控件中移动焦点,当然,不移动焦点也没有问题,只是还要手工全选中“串号1”的文本,只有把焦点从“串号1”控件移到别的控件“备注”,然后再返回来,就可以全选中“串号1”的文本,便于扫描枪再次输入,不知道有没有更好的办法来全选控件的文本?
    串号1.SetFocus '
    Resume Exit_串号1_KeyPress
End Sub


经过测试,如果序列号重复,焦点永远停留在“串号1”控件上,而且全选中“串号1”对的文本,只有扫描到全新的序列号后,才会移动到下一条记录!不需要用户做多余的动作

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

本版积分规则

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

GMT+8, 2024-11-15 01:34 , Processed in 0.115257 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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