微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 MS Access 中扫描以在表单上输入数据而无需按任何键

如何解决在 MS Access 中扫描以在表单上输入数据而无需按任何键

我有一个包含两个表的数据库。表 1 是带有员工 ID# 的人员列表。表 2 有一个“扫描”字段,它是从条形码扫描仪以几种不同的形式输入的。表 2 中的计算字段使用 Mid 函数将某些字符从“扫描”字段中拉出。然后我使用计算字段将使用 base32 数字系统的拉出的字符串转换为 Base10 数字。这个基数为 10 的数字等于员工 ID#。然后,我使用 VBA 运行代码来运行比较表的查询,并在表 2 中的员工 ID 与表 1 中的列表不匹配时打开一个表单。我一直在尝试在表单中使用“On Change”属性使上述所有事情发生。我目前拥有“On Lost Focus”属性,可以完成我需要它做的所有事情,但它需要额外的动作。我正在尝试简化它,并在我扫描到表单后立即使用它,它会自动执行后端中的所有内容关闭表单,返回到总机。我遇到的问题是扫描仪没有立即输入完整的字符串作为输入。它单独输入每个字符,因此在单个字符后触发 On Change 并导致问题,因为表中没有提取数据进行比较。有没有办法让它在扫描后自动执行,但只有在扫描输入所有 18 个字符后?

解决方法

让“On Change”事件测试字段中有多少字符。输入 18 个字符后才执行操作。

像这样:

Private Sub txtField_Change()
    
     If (Len(Me.txtField.Text) >= 18) Then

        Debug.Print "Testing 18 Characters Input" 

        'Do a bunch of things here or call another Subroutine

        DoCmd.Close acForm,Me.Name,acSaveNo 'Close the form,without saving

    End If
    
    
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。