【发布时间】:2013-07-30 05:55:50
【问题描述】:
您请求对表的更改未成功,因为它们会在索引、主键或关系中创建重复值。
这是我在将数据键入到子表单中途时收到的错误消息。我的子表单的来源是Query,它以一对一的父子关系连接两个Tables。我假设当我输入数据时会发生以下情况:
- 我有一个 After Insert 数据宏,它在 child 表中创建一行。
- 数据宏触发,并在子表中使用相应的外键创建一行。
- Microsoft Access 不知道我在子表中创建了该行。
- 当我在子表单中键入属于子表的数据时,它会自动尝试将新行添加到子表中。这会失败,因为已经存在具有相同外键的行。
有什么办法可以绕过这种行为吗?我可以在触发数据宏的那一刻桥接父表和子表之间的链接吗?我不能放弃 After Insert 数据宏,因为它包含一些有助于确定要插入哪个子表的 biz 逻辑,并且尽快在子表中创建行很重要因为数据在子表单中填充,而不仅仅是在子表单中触摸子表的字段时。
非常感谢!
编辑:我尝试通过在子表单的 After Insert 宏中运行 Me.Requery 来解决此问题。单条记录似乎可以正常工作,但批量复制粘贴时会出现错误Operation not supported in transactions.。
编辑 2: 我什至发现这个forum thread 说在交易后Requery 有点不可能。我有点确定应该有办法解决这个问题,因为它似乎对用户不友好......
【问题讨论】:
标签: ms-access macros foreign-keys ms-access-2010 referential-integrity