Пустые сообщения об ошибках в форме сохранения записи MS Access - PullRequest
0 голосов
/ 03 ноября 2018

В моей базе данных есть форма журнала событий, в которой пользователь может заполнить информацию и сохранить запись. Форма закрывается на сохранение. У меня есть 3 поля, которые являются обязательными, остальные необязательны. Это работало некоторое время, когда, если какое-либо из обязательных полей оставалось пустым, пользователь видел сообщение об ошибке, сообщающее ему, что пропало, а затем предлагалось вернуться к форме и внести изменения или закрыть или не сохранять. После заполнения всех обязательных полей пользователь нажимает «Сохранить», и запись закрывается при закрытии формы.

По какой-либо причине возникли проблемы с генерируемыми сообщениями об ошибках. Если пользователь не сможет заполнить одно или несколько полей, появятся правильные сообщения об ошибках, но затем появится пустое диалоговое окно Access без текста и только с кнопкой «ОК». Если пользователь нажимает эту кнопку, он перебирает все сообщения об ошибках, а затем закрывает форму, не запрашивая правки. Мне нужно заставить форму проверять обязательные поля, отображать сообщения об ошибках, а затем предлагать пользователю закрыть и не сохранять или возвращаться и редактировать. Я должен упомянуть, что кнопка «Сохранить» находится в макросе [Click Macro] , стандартная кнопка «Сохранить запись» с закрытой формой. У меня были некоторые проблемы с этим изначально в VBA Ниже мой код:

Private Sub Tags_AfterUpdate()
    Me.Tags.Requery
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)

    Cancel=False

If IsNull(Me.EventArea) Then
    MsgBox "Must add event area", vbcritical, "Required Field"
    Me.EventArea.BorderColor = vbRed

    Cancel = True
End If

If IsNull(Me.EventTitle) Then
    MsgBox "Must add Title", vbcritical, "Required Field"
    Me.EventTitle.BorderColor = vbRed

    Cancel = True
End If

If IsNull(Me.EventDesc) Then
    MsgBox "Must add description", vbcritical, "Required Field"
    Me.EventDesc.BorderColor = vbRed

    Cancel = True
End If

End Sub

Private Sub Form_Current()
    Me.EventCity.Requery
    Me.EventRegion.Requery
End Sub
...