Сообщение об ошибке ссылочной целостности Microsoft Access, но значения первичного ключа совпадают - PullRequest
0 голосов
/ 12 марта 2020

Я работаю над добавлением некоторых дополнительных данных из электронной таблицы Excel в существующую базу данных Microsoft Access. Первичным ключом является «RecordID», однако, когда я go создаю непосредственное отношение между текущей таблицей и новой таблицей с принудительной ссылочной целостностью, я получаю сообщение об ошибке «Microsoft Access не может создать эти отношения и обеспечить ссылочную целостность ". Странно то, что я прошел и сравнил каждый RecIDID между двумя таблицами, и они совпадают на 100%.

Затем я запустил «Find Unmatched Query», чтобы сравнить RecordID этих двух таблиц, и появилось 5 RecordID. , Тем не менее, они выглядят так, как будто они существуют в обеих таблицах. Например, и таблица 1, и таблица 2 содержат «ST101_1», но «ST101_1» был указан в непревзойденном запросе.

Еще более странно, я затем открыл таблицу 1 (основная таблица), и для этих записей в списке в бесподобном запросе я попытался добавить дублирующую запись. Это не должно позволять мне делать это, потому что «RecordID» является первичным ключом. Однако, опять же, для тех записей, перечисленных в несопоставленном запросе, это позволило мне ввести повторяющееся значение. Например, в «RecordID» я набрал «ST101_1», а затем добавил новую запись с «RecordID», «ST101_1», и это не дало мне сообщение об ошибке, что я вводил повторяющееся значение!

Любой ввод очень ценится - это сводит меня с ума!

Отношения (недавно импортированная таблица - tblFreesurfer, которую я хочу подключить к tblRecordID с принудительной ссылочной целостностью) 1 Результат непревзойденный запрос между tblRecordID и tblFreesurfer 2 Изображение моего внешнего интерфейса и базы данных, позволяющей мне ввести то, что выглядит как тот же RecordID 3

1 Ответ

0 голосов
/ 13 марта 2020

Вы должны опубликовать свои таблицы и отношения.

Однако, какой-то непревзойденный запрос - это просто запрос. Такой запрос может работать с любой таблицей.

Вы должны выбрать + предположить, что у вас есть главная таблица. Конечно, вы можете добавить много новых записей, не имея записи в дочерней таблице. (потому что вы не можете добавить две записи одновременно !!!).

Однако, если PK этой главной таблицы фактически установлен как PK, то вы не можете ввести одно и то же значение PK больше, чем на одну время. Если это так, то я подозреваю, что импортируемые данные имеют конечные пробелы, поскольку это невозможно. Либо ваша настройка неверна, либо в импортированных данных имеются завершающие пробелы. Я бы поднял две записи с помощью ОДНОГО ЖЕ pk, поместил курсор в один из столбцов и нажал клавишу f2 - вы увидите значение в выделенном поле и увидите дополнительные пробелы. При редактировании из Access нельзя вводить конечные пробелы, это можно сделать с помощью кода или во время импорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...