Ожидаемая ошибка конца оператора с FindFirst и findNext - PullRequest
0 голосов
/ 17 марта 2020

Следующий код предназначен для сравнения значения поля PURE_QP1 набора записей с другим значением поля PURE_QP1 другого второго набора. Но я получаю конец заявления ожидаемой ошибки. Мои знания Access VBA по общему признанию низки. Код предназначен для первой проверки наличия кода продукта в наборе записей. если это так, то он проверяет, соответствует ли он, находя его PURE_QP1 (который может быть больше 1) в другой таблице. условие соответствия таково, что все его QP1 должны быть найдены в таблице.

Dim db   As DAO.Database
Dim rst  As Recordset
Dim rst1 As Recordset

If Nz(Me!Combo_Product_number) <> "" Then
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Q_compliant_FCM_EU", dbOpenDynaset)
    Set rst1 = db.OpenRecordset("T_DOSSIER_FPL", dbOpenDynaset)


    Do While Not rst.EOF
        If rst.Fields("PRODUCT_CODE") = Me!Combo_Product_number Then
            rst1.FindFirst "[PURE_QP1] = '"rst.Fields("PURE_QP1")"'"

            If rst.NoMatch Then
                MsgBox ("Product code is NOT compliant to FPL")
                Exit Sub
            End If

            rst1.FindNext"[PURE_QP1] = '"rst.Fields("PURE_QP1")"'"

   Loop
   MsgBox ("Product code is compliant to FPL")

Else
   MsgBox ("Product is not available in FCM_EU")
End If



End If

End Sub

Ожидаемая ошибка окончания обработки отображается в

rst1.FindFirst "[PURE_QP1] = '"rst.Fields("PURE_QP1")"'" 

и

rst1.FindNext"[PURE_QP1] = '"rst.Fields("PURE_QP1")"'"

1 Ответ

1 голос
/ 17 марта 2020

У вас есть дополнительные End If перед End Sub. Эта End If должна go выше Loop команды закрыть If rst.Fields("PRODUCT_CODE") = Me!Combo_Product_number Then, если блок.

Также ваш код относительно rst1 неверен.

rst1.FindFirst "[PURE_QP1] = '"rst.Fields("PURE_QP1")"'"

должен быть

rst1.FindFirst "[PURE_QP1] = '" & rst.Fields("PURE_QP1") & "'"

в вашем коде отсутствует знак & для присоединения строк.

PS: не представляете, что должен делать ваш код, потому что сначала вы находите, а потом находите логи c кажется неправильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...