|
|
|
| Как ее сделать в форме, чтобы акс не выдавал ошибку с требованием заполнить поле?
Пытаюсь вот так:
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo Err_
If IsNull(Me.StorageOwnerID) Then
Cancel = True
If MsgBox("Пожалуйста, укажите владельца склада"), vbExclamation + vbOKCancel) = vbCancel Then
Me.Undo
DoCmd.Close
End If
End If
Exit Sub
Err_:
End Sub
|
но акс все равно выдает ошибку. | |
|
| |
|
|
|
| установите условие на значение и сообщение на уровне таблиц
перечитал вопрос.
Я не использую обязательность полей (т.е. у меня все не обязательные кроме ключа который обычно счетчик)
но у тех полей которые нужно обязательно заполнить я указываю значение по умолчанию равным
null или ""
А в условии на значение пишу
not is null and <> ""
ну и соответвенно сообщение "Укажите ....."
Все это на уровне таблиц | |
|
| |
|
|
|
| А я просто блокирую поля. Никто ничего не введет до тех пор, покуда в обязательном поле не будет инфы.
При получении фокуса в следующее поле:
If Me.Обязательное<> "" Then
Me.Следующее.Locked = False
Else
Me.Следующее.Locked = True
MsgBox ("Проверь заполнение обязательного поля")
End If
И работает уже не первый год | |
|
| |
|
|
|
| Сделал вот так. Форма типа SingleForm. Открывается в режиме добавления записи. На форме есть кнопка Exit. Пользователь заносит данные и жмет exit.
Private Sub ExitButton_Click()
On Error GoTo Err_
Me.Refresh 'по этой команде Access попытается обновить форму и сработает обработчик события BeforeUpdate
DoCmd.Close
Exit Sub
Err_:
'
End Sub
|
Private Sub Form_BeforeUpdate(Cancel As Integer)
'если указаны какие-то данные по складу, но не указан владелец:
If Not IsNull(Me.StorageID) And IsNull(Me.StorageOwnerID) Then
If MsgBox("Пожалуйста, укажите владельца склада!"), vbExclamation + vbOKCancel) = vbCancel Then
'юзер отказался указать владельца склада: отменяем сделанные юзером изменения
Me.Undo
Else
'юзер согласился указать владельца склада: останавливаем исполнение кода, не давая Access обновить данные,
'сохранить запись, в которой не указан владелец и закрыть форму.
Cancel = True
End If
End If
End Sub
|
Пока не додумал, как обработать ошибку стандартного крестика, закрывающего форму, поэтому его пришлось отключить. | |
|
| |