Хотя мой вопрос кажется простым, я посмотрел и не нашел ничего подходящего. У меня есть форма, которая отображает таблицу (table1), в которой пользователь может редактировать два поля номера детали (короткий текст), Alt_PN и Master_PN.
Я хочу выполнить следующие проверки полей в table1:
Alt_PN
: НЕ присутствует в Alt_PN в таблице 2 и НЕ присутствует в Master_PN таблицы 3 Master_PN
: присутствует в Master_PN в таблице 3
Поведение Я ищу, что если запись редактируется или создается новая запись, появляется сообщение об ошибке, описывающее ошибку, позволяющую пользователю отредактировать или отменить.
Вот код, который я пробовал для AfterUpdate
для Master_PN
:
Private Sub txtAHW_PN_AfterUpdate()
Dim strSQL As String
strSQL = "SELECT *" & vbCrLf & _
"FROM tbl_Base_PN_Validation " & vbCrLf & _
"WHERE (tbl_Base_PN_Validation.Valid_Part_Number= '" & txtAHW_PN & "');"
Err.Clear
fnc_g_GLOBAL_DB.Execute strSQL, dbFailOnError
If Err.Number <> 0 Then
MsgBox ("Error: part number not a master PN. Pls reeenter.")
End If
End Sub
Когда я ввожу допустимое значение txtAHW_PN
из NS103680-8
, переменная strSql
имеет значение
SELECT *
FROM tbl_Base_PN_Validation
WHERE (tbl_Base_PN_Validation.Valid_Part_Number= 'NS103680-8');
При запуске это находится в редакторе запросов Я получаю действительную таблицу результатов. В VBA я получаю dbFailOnError
ошибку 128.
Любая помощь приветствуется.