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

avatar
Joey86
8 апреля 2018 в 09:40
332
1
0

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

Форма LIVEDBINPUT не предотвращает дублирование из таблицы CANCELATIONDBtable, only theLIVEDB`.

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

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

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

Источник
ashleedawg
8 апреля 2018 в 09:42
1

Не могли бы вы поделиться примером ваших данных и соответствующего кода, который у вас есть? (См. «минимальный воспроизводимый пример».) Кроме того, есть ли у 2 таблиц какие-либо настройки отношений/правил целостности данных?

Joey86
9 апреля 2018 в 12:05
0

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

Ответы (1)

avatar
Lee Mac
8 апреля 2018 в 15:02
0

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

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

SELECT * FROM LIVEDB UNION SELECT * FROM CANCELLATIONDB
nicomp
8 апреля 2018 в 15:55
0

Будет создан большой гудящий набор записей. Остерегаться. Вам лучше объединить столы и установить флаг отмены.