Как сделать одно из двух полей обязательным в 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.

Другие вопросы по тегам