您无法添加或更改记录,因为表“table_name”中需要相关记录

问题描述 投票:0回答:5

我刚刚接管了访问网站,我试图弄清楚为什么当我尝试更新一个表中的记录时,它向我提供了此消息。

“Microsoft JET 数据库引擎错误‘80040e21’

You cannot add or change a record because a related record is required in table 'Members'. "

如何查到相关记录是什么?

感谢您的帮助

ms-access asp-classic
5个回答
5
投票

问题是没有找到相关记录,问题是在 Members 中没有与您尝试在另一个表中更新的记录相对应的相关记录。

您可以首先查看为数据库设置的关系。转到工具菜单并选择关系。查找 Members 表和您尝试更新的表之间的任何关系。查看关系中使用了哪些字段。这将告诉您哪个字段导致您尝试更新的表中出现问题。对于您尝试在此字段中输入的任何值,相同的值必须首先存在于“成员”的相关字段中。


0
投票

感谢您的帮助。通过使用上面的一些建议并通过反复试验,我能够让它发挥作用。

问题是有两个相关的字段,这就是为什么当我尝试执行我期望的操作时,它无法正常工作。


0
投票

就我而言,我有一个组合框,它正在更改另一个表中的记录名称,该表需要另一个表的 ID。

所以我有表C,它有表B的外键,表B有表A的外键。我的组合框设置为控制表B的名称字段,所以我将其更改为控制表A中的外键相反,表 C(指向表 B)。

为了解决我的问题,我选择了组合框,转到

Property Sheet (F4) ->Data->Control Source

并将其设置为表 C 中的外键字段(指向表 B 中的记录)


0
投票

我遇到了这个问题的另一个原因。

将这两个表称为

A
B
。它们之间具有引用完整性定义的关系。当我尝试在
B
中添加一条在
A
中具有相应记录的记录时,我收到错误“您无法添加或更改记录,因为表 'A' 中需要相关记录”。这没有任何意义,因为所需的相关记录位于
A
中。

然后我意识到

B
中的字段将其
Display Control
* 设置为源为
A
的列表框,并且绑定的列是错误的列号,它是主键的一部分。因此,当我尝试在
B
中添加新记录时,它在错误的位置查找我添加的主键值,当然它在那里找不到必要的值。当我将绑定列设置为正确的列号时,我能够添加新记录。

'*

Display Control
位于选项卡
Lookup
下的表格字段属性中。


0
投票

我设法解决了这个问题。 事实证明,这是由于在您所指的字段中使用自动增量而发生的。相反,请使用 INTEGER NOT NULL。而如果需要使用自增,那么可以在表中查询max(id),在添加新行时将其加一。

© www.soinside.com 2019 - 2024. All rights reserved.