【发布时间】:2023-04-08 09:09:01
【问题描述】:
我有一个 Access 2003 前端,以前使用 Access 后端没有问题。我最近将 Access 后端切换为使用 SQL Server 2005,但我还没有弄清楚最后一个问题 - 任何帮助将不胜感激。
我有两个处于多对多关系的表:
tblMembership <--> tblLinkPersonMembership <--> tblPerson
主键字段是membershipId 和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 个人),但如果我尝试输入第五个人,我得到同样的错误。我可以关闭表单,重新打开,然后再添加 2 个,令人作呕。
我有点难过,到目前为止我所做的研究还没有发现任何东西。有什么帮助吗?
【问题讨论】:
标签: sql-server ms-access many-to-many