Я знаю, что это старый поток, и на него уже был дан ответ, но есть другое решение, которое не требует нескольких записей обратно в вашу базу данных. Я добавляю его на случай, если кто-то еще столкнется с этим вопросом.
Private Sub ControlName_BeforeUpdate(Cancel as integer)
If isValid(Me.ControlName.Value) = False Then
Cancel = True
Me.ControlName.Undo
End If
End Sub
Private Function isValid(ByVal...) as boolean
' validate control value here
End Function