【问题标题】:MS Access: Trim a leading character upon input into form fieldMS Access:在输入表单字段时修剪前导字符
【发布时间】:2015-09-25 19:38:32
【问题描述】:
我正在构建一个访问数据库,在我的主表单上,我有一个名为“PartNumber”的字段。我想使用 USB 扫描仪和条形码将数据(零件编号)扫描到此字段中。但是,条形码包含一个前导“P”,它实际上不在零件编号中,仅用于识别该编号分配给哪种对象。我想在最初扫描数据时自动删除那个 P,以便数据库存储并显示正确的零件号。
我考虑过使用包含 mid() 和 len() 的表达式的查询,然后将表单字段的控制设置为查询中的该字段。但是,这不会让我在表单的表格中更改或输入数据,因此对于尚未在表格中的任何记录而言,它都是无用的。
非常感谢任何想法。谢谢!
【问题讨论】:
标签:
sql
ms-access
field
ms-access-2013
【解决方案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
【解决方案2】:
取决于条形码 API VBA 的运行方式:通过 SQL 更新表格或更新 VBA 中的当前表单记录;批量更新或一次更新一个。无论哪种方式,在更新字段时读取条形码结束时,只需在 VBA 或 SQL 中使用Replace():
SQL:
UPDATE tablename SET fieldname = Replace(fieldname, 'P', '')
VBA:
Me.fieldname = Replace(Me.fieldname, 'P', '')