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

时间:2011-10-05 18:57:40

标签: ms-access asp-classic

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

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

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

如何找出相关记录的内容。

感谢您的帮助

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

问题在于有两个相关领域,这就是为什么当我试图按照我的预期进行操作时,它无法正常工作。

答案 2 :(得分:0)

在我的情况下,我有一个组合框,它正在从另一个需要另一个表的id的表中更改记录的名称。

所以我有表C,它有表B的外键,表B有表A的外键。我的组合框被设置为控制表B的名称字段,所以我改变它来控制外国表C中的关键字(指向表B)。

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

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

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

答案 3 :(得分:0)

我遇到了导致此问题的另一个原因。

调用两个表 AB。它们之间定义了具有参照完整性的关系。当我尝试在 B 中添加在 A 中有相应记录的记录时,我收到错误“您无法添加或更改记录,因为表 'A' 中需要相关记录” .这是没有意义的,因为所需的相关记录在 A 中。

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

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