【问题标题】:You cannot add or change a record because a related record is required in table 'table_name'您无法添加或更改记录,因为表 'table_name' 中需要相关记录
【发布时间】:2021-04-14 17:49:17
【问题描述】:

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

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

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

我如何找出相关记录是什么。

感谢您的帮助

【问题讨论】:

  • 您正在编辑的表和成员表之间似乎存在关系设置。没有看到表格,也许有一个字段在寻找 MemberID。您需要输入存在于 Members 中的 MemberID(或其他任何内容)。
  • 使用 OR 语句是个好主意,但如果输入太多,它创建的 SQL 将无法运行。见图。 enter image description here

标签: ms-access asp-classic


【解决方案1】:

问题是没有找到相关记录,问题是成员中没有与您尝试在其他表中更新的记录相对应的相关记录。

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

【讨论】:

  • 提示:并非所有访问关系都强制引用完整性。
【解决方案2】:

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

问题是有两个相关的字段,这就是为什么当我尝试做我期望的事情时它不能正常工作。

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多