Итак, я постараюсь изо всех сил объяснить фон, чтобы прояснить понимание того, чего я надеюсь достичь.У меня есть форма (События), которая имеет элемент управления вкладками, элемент управления вкладками имеет 3 разные страницы, каждая из которых имеет свою подчиненную форму.
Одна из подчиненных форм (динамики) имеет кнопку управления, которая проверяет «динамики»аттенюент ID и, если есть совпадение, открывает форму «Включение» для записи, которая соответствует.
Что предполагается делать, если запись не соответствует, это открыть форму для новой записи и вставить ContactID,AttendeeID и EventID.
Это четвертая итерация кода, которая работает до некоторой степени / не возвращает ошибок
Dim myR As Boolean
Dim strSQL As String
Dim myV1 As Integer
Dim myV2 As Integer
Dim myV3 As Integer
'Define the variables to be input
myV1 = Me.AttendeeID
myV2 = Me.ContactID
myV3 = Me.EventID
'Is there a Matching Onboard Record for the current Attendee Record?
myR = DCount("*", "tbl_Onboarding", "[AttendeeID] = " & Me.AttendeeID) > 0
If myR = True Then
DoCmd.OpenForm "usf_Onboarding", acNormal, , , acFormEdit, acWindowNormal 'Edit Mode
Else 'No Matching Record, so Add one
If Me.Dirty = True Then Me.Dirty = False 'Save pending Edits
DoCmd.OpenForm "usf_Onboarding", acNormal, , , acFormAdd, acWindowNormal 'Add Mode
Forms!usf_Onboarding!txt_ForceFocus.SetFocus
strSQL = "INSERT INTO tbl_Onboarding (AttendeeID,ContactID,EventID) VALUES (" & myV1 & ", " & myV2 & ", " & myV3 & ")"
Debug.Print strSQL
CurrentDb.Execute strSQL, dbFailOnError
Me.Requery
DoCmd.Close acForm, "usf_Events", acSaveYes
End If
Используя немедленное подтверждение, я подтвердил, что myV1, myV2 и myV3 - всеудерживая правильные значения, и я использовал точки останова для проверки построчно, и казалось, что все работает нормально с нулевым количеством ошибок, но у меня все еще есть следующие проблемы в зависимости от того, является ли myR True / False
- Еслизапись существует (myR = TRUE), тогда что-то теперь заставляет ее загружать только 1-ую запись таблицы (а не ту, где совпадает идентификатор участника).
- Если запись не существует (myR = FALSE) после выполнения этой таблицы, в таблице есть новая запись с contactID / AttendeeID / EventID, но форма не обновляется, чтобы показать это (элементы управления формы установлены на заблокированные= False) Это приводит к ошибке при закрытии.Поэтому выбор не сохранять данные (нажав «Да» на поле, чтобы отменить изменения) разрешает принудительный выход, но запись / данные сохраняются с contactID / AttendeeID / EventID
Debug.Print strSQL также не сделал 'не делай ничего странного.