Доступ к кодам циклов VBA - PullRequest
0 голосов
/ 30 ноября 2018

Я впервые задаю вопросы, поэтому надеюсь, что смогу предоставить достаточно информации.У меня есть форма, которая имеет 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...