Я впервые задаю вопросы, поэтому надеюсь, что смогу предоставить достаточно информации.У меня есть форма, которая имеет 15 одинаковых строк для заполнения пользователем, так как они сканируют соответствующие 2D штрих-коды и должны совпадать.Каждая роль состоит из следующих элементов:
Текстовое поле [ERP1], Текстовое поле [Код1], Текстовое поле [Показать1] Следующая строка: Текстовое поле [ERP2], Текстовое поле [Код2], Текстовое поле [Шоу2] И все вместе 15Строки.
Я написал код для строки 1 (см. ниже), и он идет отлично.Однако я должен скопировать и заменить свои коды с xxx1 на xxx2 вручную (см. Ниже) и 15 раз.Я не уверен, есть ли лучший способ сделать это.Кто-нибудь может предложить лучший метод?Спасибо !!
Private Sub ERP1_AfterUpdate()
If Me.ERP1 = "CALC16" Then
Me!Code1.Enabled = True
Me!Code1.Locked = False
Me!Code1.SetFocus
Else
If IsNull(Me.ERP1.Value) Then
Me!Code1.Enabled = False
Me!Code1.Locked = True
Else
Me!Code1.Enabled = False
Me!Code1.Locked = True
MsgBox ("Scanned Wrong Location / Order!")
End If
End If
End Sub
Private Sub Code1_AfterUpdate()
Dim Vcode As String
Dim Vbatch As String
Dim VExp As String
Dim nline As String
nline = Chr(10) & Chr(13)
Vcode = extract_code(Code1)
Vbatch = extract_batch(Code1)
VExp = Format(extract_expdate(Code1), "dd/mm/yyyy")
If Vcode = Me.ERP1 Then
Dim StrSQLER As String
StrSQLER = "[A_KitID] = '" & [KitNo] & "' AND [A_ItemCode] = '" & Vcode & "'"
Dim ActBatch As String
Dim ActExp As String
ActBatch = DLookup("[A_Batch]", "Active", StrSQLER)
ActExp = DLookup("[A_Exp]", "Active", StrSQLER)
If (Vbatch = ActBatch) And (VExp = ActExp) Then
Me.show1.Value = "OK!"
Me.show1.BackColor = RGB(203, 226, 200)
Me.show1.ForeColor = RGB(0, 0, 0)
Me!ERP2.Enabled = True
Me!ERP2.Locked = False
Me!ERP2.SetFocus
Else
Me.show1.Value = "X"
Me.show1.BackColor = RGB(233, 38, 51)
Me.show1.ForeColor = RGB(255, 255, 255)
MsgBox ("Batch and Expiry Does not match with System Record" & nline & "Current Recorded Batch: " & ActBatch & nline & "Current Recorded Expiry Date: " & ActExp & nline & nline & "Please update kit content if appropriate")
Exit Sub
End If
Else
MsgBox ("Scanned Item does not match with the location")
Exit Sub
End If
End Sub
Private Sub ERP2_AfterUpdate()
If Me.ERP2 = "LIGN18" Then
Me!Code2.Enabled = True
Me!Code2.Locked = False
Me!Code2.SetFocus
Else
If IsNull(Me.ERP2.Value) Then
Me!Code2.Enabled = False
Me!Code2.Locked = True
Else
Me!Code2.Enabled = False
Me!Code2.Locked = True
MsgBox ("Scanned Wrong Location / Order!")
End If
End If
End Sub
Private Sub Code2_AfterUpdate()
Dim Vcode As String
Dim Vbatch As String
Dim VExp As String
Dim nline As String
nline = Chr(10) & Chr(13)
Vcode = extract_code(Code2)
Vbatch = extract_batch(Code2)
VExp = Format(extract_expdate(Code2), "dd/mm/yyyy")
If Vcode = Me.ERP2 Then
Dim StrSQLER As String
StrSQLER = "[A_KitID] = '" & [KitNo] & "' AND [A_ItemCode] = '" & Vcode & "'"
Dim ActBatch As String
Dim ActExp As String
ActBatch = DLookup("[A_Batch]", "Active", StrSQLER)
ActExp = DLookup("[A_Exp]", "Active", StrSQLER)
If (Vbatch = ActBatch) And (VExp = ActExp) Then
Me.show2.Value = "OK!"
Me.show2.BackColor = RGB(203, 226, 200)
Me.show2.ForeColor = RGB(0, 0, 0)
Me!ERP3.Enabled = True
Me!ERP3.Locked = False
Me!ERP3.SetFocus
Else
Me.show2.Value = "X"
Me.show2.BackColor = RGB(233, 38, 51)
Me.show2.ForeColor = RGB(255, 255, 255)
MsgBox ("Batch and Expiry Does not match with System Record" & nline & "Current Recorded Batch: " & ActBatch & nline & "Current Recorded Expiry Date: " & ActExp & nline & nline & "Please update kit content if appropriate")
Exit Sub
End If
Else
MsgBox ("Scanned Item does not match with the location")
Exit Sub
End If
End Sub