Как сделать одно из двух полей обязательным в MS Access?
Я новичок в MS Access, и у меня есть форма с полями [имя] и [компания]. Я хочу сделать так, чтобы пользователь заполнил любой из них, но не обязательно оба. Они могут заполнить [имя], [компанию] или и то, и другое, но не могут оставить оба поля пустыми.
Как мне этого добиться?
2 ответа
Вы можете сделать это в VBA:
Создайте Eventhandler, который запускается перед сохранением набора данных, и скажите ему отменить обновление, если ваши условия не выполняются:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If (isnull(me!name) and isnull(me.company) then
msgBox "Give me more !"
Cancel = True
End If
End Sub
В этом случае я бы порекомендовал макросы данных (если вы используете Access 2010 или более позднюю версию). Преимущество по сравнению с VBA заключается в том, что Data Macro работает на уровне ядра, поэтому, если у вас есть несколько форм с этими полями, вам не нужно дублировать VBA для каждого из них. Это также устраняет проблему с началом ввода данных, а затем их удаления.
Перейдите в раздел "Дизайн таблицы", нажмите " Создать макросы данных" > " Перед изменением" и добавьте условие If следующим образом:
Вы можете использовать VBA, чтобы поймать ошибку номер 1, чтобы сделать некоторые вещи. Как говорят Access, номера ошибок определяются пользователем и не имеют значения для Access.