【发布时间】:2019-08-01 14:45:23
【问题描述】:
我正在编写一个程序来读取条形码。我需要读取 QR 条码(带有数组)以及具有一个值的常规条码。
截至目前,该代码将不接受除 QR/Array 条形码以外的任何内容。
该程序用于接受两个条形码,但不会将任何 QR 条形码信息插入到表中,除了 Array(0)。无论我扫描的是普通条码(仅包含产品名称)还是包含多个值的 QR 条码,表格中只会显示名称。
我现在编辑了 SQL INSERT INTO 语句以插入所有 QR 条形码数组值。问题是执行扫描的表单将不再接受常规条形码(只是产品名称)。
我尝试添加“OR ''”来说明可能的空值,但表单仍然不接受这个。
这里是我定义数组的地方:
fValue = Split(Me.txtScanArea.Value, ",")
BCName = fValue(0)
LotNo = fValue(1)
Serial = fValue(2)
Exp = fValue(3)
Weight = fValue(4)
SName = fValue(5)
对应的SQL语句。
sql = "INSERT INTO dbo_ScanLog (Lot, Type, " & _
"Serial, ScanName, ScanProcess, ScanLot, Expired, " & _
"Weight, SPN, ScanWarning, Loc, Category, ScanCount, ScanDate) " & _
"VALUES('" & pbl_Lot & "','" & _
pbl_Name & "','" & Serial & "' OR '','" & _
BCName & "',1,'" & LotNo & "' OR '','" & Exp & "' OR '','" & _
Weight & "' OR '','" & SName & "' OR '','" & _
msg & "','C','F'," & _
iCount & ",#" & Now() & "#)"
InsertDB (sql)
它将接受 QR 条形码(读作:ProName,J0801-2019,SN123456,2019.12.25,5,123456,2019.08.01),但不接受常规条形码(读作:ProName)。
当我在 Access 表单中输入常规条形码的信息时,按 Enter 键甚至不会尝试将信息插入数据库。它只是位于表单条目中,而插入 QR 扫描并按 Enter 会将其添加到我们的数据库中。
【问题讨论】:
-
测试 fValue 的 ubound 并在此基础上运行两个不同的插入 SQL 语句会更干净。
-
所以你是说不要定义每个数组值?只保留 "fValue = Split(Me.txtScanArea.Value, ",")" 语句?我仍然不知道如何将其拆分为两个不同的插入语句。换句话说,是什么将一个与另一个区分开来。我希望这对你有意义。