
У меня есть база данных 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