У меня есть клиент Access 2003, который без проблем использовал сервер Access.Недавно я переключил бэкэнд Access на использование SQL Server 2005, но пока не смог разобраться с этой последней проблемой - любая помощь приветствуется.
У меня есть две таблицы во многихмногие отношения:
tblMembership <--> tblLinkPersonMembership <--> tblPerson
Полями первичного ключа являются membersId и personId, а таблица ссылок содержит и то, и ничего больше.
Приложение Access имеет форму, которая использует tblMembership
в качестве источника записей.У него есть дочерняя форма, источник записи которой
SELECT *
FROM tblPerson INNER JOIN tblLinkPersonMembership
ON tblPerson.personId=tblLinkPersonMembership.personId;
. Это прекрасно работало при использовании базы данных Access (2003) в качестве бэкэнда.Теперь, когда бэкэнд - SQL Server 2005, я могу ввести записи 2 человек в подчиненной форме, но когда запись третьего лица для данного членства пытается сохранить, я получаю следующую ошибку:
The Microsoft Jet database engine cannot find a record in the table
'tblPerson' with key matching field(s) 'tblLinkPersonMembership.personId'.
Если язакройте форму, снова откройте ее и вернитесь к членству (с которым сейчас связано 2 человека), я могу ввести еще 2 человек (лица № 3 и № 4), но если я попытаюсь ввести 5-е лицо,Я получаю ту же ошибку.Я могу закрыть форму, снова открыть и добавить еще 2, до тошноты.
Я немного озадачен, и то, что я провел на сегодняшний день, ничего не нашло.Любая помощь?