MS Access:在输入表单字段时修剪前导字符

时间:2015-09-25 19:38:32

标签: sql ms-access field ms-access-2013

我正在建立一个访问数据库,在我的主表单上,我有一个名为" PartNumber的字段。"我想使用USB扫描仪和条形码将数据(部件号)扫描到此字段中。然而,条形码包括领先的" P"实际上并不在零件编号中,仅用于识别该编号分配给哪种对象。我想在最初扫描数据时自动删除该P,以便数据库存储并显示正确的部件号。

我考虑过使用带有涉及mid()和len()的表达式的查询,然后将表单字段的控件设置为查询中的该字段。但是,这不允许我在表格中更改或输入数据,因此对于表格中尚未存在的任何记录都没用。

非常感谢任何想法。谢谢!

2 个答案:

答案 0 :(得分:1)

我会在文本框的AfterUpdate事件中使用VBA执行此操作。

Private Sub PartNumber_AfterUpdate()
    If Left(Me!PartNumber, 1) = "P" Then
        ' Remove the first character
        Me!PartNumber = Mid(Me!PartNumber, 2)
    End If
End Sub

答案 1 :(得分:0)

取决于条形码API VBA的运行方式:通过SQL更新表或更新VBA中的当前表单记录;批量更新或一次更新一个。无论哪种方式在更新字段时条形码读取结束时,只需在VBA或SQL中使用Replace()

SQL:

UPDATE tablename SET fieldname = Replace(fieldname, 'P', '')

VBA:

Me.fieldname = Replace(Me.fieldname, 'P', '')