Предотвращение дублирования записей в форме Access, если значение существует в нескольких таблицах

Предотвращение дублирования записей в форме Access, если значение существует в нескольких таблицах

У меня есть база данных Access с двумя таблицами и формой.

Форма связана с одной из таблиц для ввода данных.

У меня есть:

  • LIVEDBкоторая представляет собой таблицу с информацией о реальных клиентах.
  • LIVEDBINPUTформа, которая вводит информацию вLIVEDB
  • CANCELLATIONDBкоторая представляет собой просто таблицу - когда кто-то отменяет подписку, он просто вырезается LIVEDBи вставляется в CANCELLATIONDB.

У меня есть всевозможные правила, предотвращающие дубликаты в LIVEDBINPUTформе, но недавно я столкнулся с проблемой: форма LIVEDBINPUTне предотвращает дубликаты из CANCELLATIONDBтаблицы, а только LIVEDBиз самой таблицы.

Я хочу, чтобы форма запрещала ввод номера телефона, если он уже есть в LIVEDBтаблицеИЛИТаблица CANCELLATIONDB.

Если бы я мог настроить окно сообщения, которое бы отображало что-то вроде"этот номер телефона уже существует в LIVEDBили CANCELLATIONDB", а затем возможность перенаправить пользователя к этой записи или удалить ее, это было бы идеально.

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

решение1

Создайте UNIONзапрос, который выведет все записи, хранящиеся как в вашей LIVEDBтаблице, так и в вашей CANCELLATIONDBтаблице, а затем проверьте наличие существующих записей в этом запросе перед сохранением новых записей.

Предполагая, что ваша CANCELLATIONDBтаблица имеет идентичную структуру LIVEDB(поскольку вы перемещаете записи из одной в другую), UNIONзапрос может быть таким простым:

SELECT * FROM LIVEDB UNION SELECT * FROM CANCELLATIONDB

Связанный контент