Я создал таблицу "Клиент" и создал форму, имитирующую процесс регистрации.
После нажатия на кнопку "Зарегистрироваться" я хочу отказаться от процесса регистрации, если комбинация электронной почты и пароля уже существует. В противном случае сохраните запись.

Возможно ли реализовать это в Microsoft Access?

1 ответ1

0

Создайте уникальное ограничение для двух столбцов вместе, это приведет к тому, что Access будет отклонять дубликаты как нарушение уникального ограничения. То, что вы делаете с ошибкой, будет зависеть от вашей формы. Здесь ТАК ответ:

https://stackoverflow.com/questions/2127698/can-we-create-multicolumn-unique-indexes-on-ms-access-databases

Соответствующий ответ:

Откройте таблицу в режиме конструктора в MS Access, выберите три столбца, которые вы хотите превратить в уникальный индекс, и нажмите маленький ключ на панели инструментов. Вы не можете иметь нулевые значения в первичном ключе (установлено). https://stackoverflow.com/users/2548/remou

Отредактируйте, поскольку у вас уже есть PK и, возможно, вы не хотите создавать новый составной PK для его замены, но это другой вариант:

В любом случае, вот как вы создаете многоколонный уникальный индекс для базы данных MS Access. 1.Откройте таблицу в режиме конструктора и выберите «Дизайн», выберите «Индексы». 2.Создайте новую строку и введите значение в ячейку Index Name, 3.Выберите первый столбец из выпадающего меню. 4.Добавьте новую строку и оставьте ячейку Index Name пустой. 5.Выберите второй столбец и так далее. https://stackoverflow.com/users/47775/nbolton

Другой (и плохой) вариант - сначала запрашивать базу данных, а затем не вставлять, но это оставляет дверь открытой для потенциальных проблем ссылочной целостности на более позднем этапе.

Как примечание стороны все же; Вы уверены, что хотите вставить для каждой уникальной комбинации имя пользователя (адрес электронной почты)/ пароль? Это может вызвать проблемы у пользователей, которые забыли свой пароль и в результате получили дубликаты учетных записей. Возможно, вы захотите подумать о каком-то другом составном идентификаторе (например, дескриптор + пароль уникальны, а электронная почта уникальна для БД. Или просто укажите, что адрес электронной почты уникален. Я не знаю достаточно о вашем наборе проблем - но об этом стоит подумать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .