[英]defining delimiters in vba for access
我有一個使用條形碼掃描儀收集信息的訪問界面。 我想在其中的示例中包含多個信息的條形碼:保存訂單值和該訂單上特定物品的條形碼。
我有一些物品被分為“很多”,這些物品按照特定的物品分組到這些批次中,每批次1種。 但是一個訂單可以有多種商品類型,因此每個訂單有多個批次。 我想在一個條形碼中添加訂單和批號。
看起來像* O961LA1450 *
星號開始和結束條形碼。 O以訂單號961開始。L以批號A1450開始。
我想定義一個定界符“ L”,以分隔條形碼以將批號與表格的批號進行比較以檢查其正確性,然后在表格上填充正確的訂單號。
誰能解釋如何定義定界符或提供其代碼段。 任何幫助,將不勝感激。
很基本的例子:
Sub Main()
Dim barcode As String
barcode = "O961LA1450"
ProcessBarcode (barcode)
End Sub
Function ProcessBarcode(barcode As String)
Dim order As Long
Dim lot As String
Dim codes As Variant
codes = Split(barcode, "L")
order = CLng(Right(codes(0), Len(codes(0)) - 1))
lot = codes(1)
'for testing purposes:
Debug.Print "Order: " & order & " Lot: " & lot
'do comparing against other values here
End Function
結果是:
Order: 961 Lot: A1450
通常,此類數據使用固定長度的字段,因此您要為訂單號分配4個字符,為批號分配5個字符,這樣:
0961A1450
將被解析:
Order Number: Left("0961A1450", 4)
Lot Number: Mid("0961A1450", 5, 5)
浪費定界符空間的唯一原因是數據的長度可變。 我可能會為訂單號分配5個字符,為批號分配6個字符,以便將來打樣(並適當填充)。 例如,示例將被編碼為:
00961A01450
...並且您可能希望以這種方式解析它,以去除前導零:
Order Number: Val(Left("00961A01450", 5))
Lot Number: Mid("00961A01450", 6, 1) & CStr(Val(Mid("00961A01450", 7, 5)))
畢竟,似乎定界符會更容易,但我從未遇到使用它們的條形碼數據。 如果您僅編碼兩個數據,則可能會容易得多,因為您將前N個位置分配給了第一個數據,之后的所有內容將是您的其他數據,並且可以是任意長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.