2015-09-25 50 views
0

我正在建立一个访问数据库,在我的主窗体上,我有一个名为“PartNumber”的字段。我想使用USB扫描仪和条形码将数据(部件号)扫描到此字段中。但是,条形码包含一个实际上不在零件号码中的前导“P”,并且仅用于识别该编号分配给哪种对象。我想在最初扫描数据时自动删除该P,以便数据库存储并显示正确的部件号。微软Access:微调输入到表单域的主角字符

我想过使用一个涉及mid()和len()的表达式的查询,然后将表单字段的控件设置为查询中的该字段。但是,这不会让我在表格的表格中更改或输入数据,所以对于表格中尚未存在的任何记录都没有用处。

任何想法,不胜感激。谢谢!

回答

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 
+0

这伟大的工作,感谢你的帮助! – Tanner

0

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

SQL:

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

VBA:

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