MS Access:Trim 表单域输入前导字符

MS Access: Trim a leading character upon input into form field

我正在构建一个访问数据库,在我的主窗体上,我有一个名为 "PartNumber." 的字段我想使用 USB 扫描仪和条形码将数据(零件号)扫描到该字段中。但是,条形码包含一个前导 "P",它实际上不在零件编号中,仅用于识别该编号分配给的对象类型。我想在最初扫描数据时自动删除那个 P,以便数据库存储和显示正确的零件号。

我考虑过使用包含 mid() 和 len() 表达式的查询,然后将表单字段的控件设置为查询中的该字段。但是,这不会让我在表单的 table 中更改或输入数据,因此对于 table.

中尚未存在的任何记录都是无用的

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

我会在文本框的 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

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

SQL:

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

VBA:

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