Итак, у меня есть форма, которая обновляет таблицу в Microsoft Access.Я использую вызов события BeforeUpdate, чтобы остановить обновление формы, если «имя» не было заполнено.
Я хочу, чтобы форма сохранялась только после того, как все заполнено, изатем переключитесь, чтобы увидеть обновленную таблицу (бит «Если не отменить»).
В настоящее время всплывающее окно с надписью «Вы должны ввести имя» корректно срабатывает, следующее всплывающее окно спрашивает, хочет ли пользовательотменить любые изменения пожаров.Но затем появляется всплывающее окно с надписью «Нет текущей записи», а затем представление меняется на таблицу.Я не уверен, почему это все происходит.
Option Compare Database
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = False
' perform data validation
If IsNull(Me.customer_f_name) Then
MsgBox "You must enter a First Name.", vbCritical, "Data entry error..."
Me.customer_f_name.BorderColor = vbRed
DoCmd.GoToControl "customer_f_name"
Cancel = True
End If
If Not Cancel Then
DoCmd.SelectObject acTable, "ticket_tracker_table"
DoCmd.Requery
DoCmd.GoToRecord acDataTable, "ticket_tracker_table", acLast
End If
' if the save has been canceled or did not pass the validation , then ask to Undo changes
If Cancel Then
If MsgBox("Do you want to undo any changes?", vbYesNo, "Confirm") = vbYes Then
Me.Undo
End If
End If
End Sub