Database 从Access数据库中删除记录,删除时出错

Database 从Access数据库中删除记录,删除时出错,database,ms-access,Database,Ms Access,我有以下情况:我构建了一个带有子表单的访问表单(这些记录通过某个键链接到主表单的记录)。当我尝试删除子窗体中的任何记录时,会收到以下消息:“Access已暂停操作,因为您和其他用户试图更改数据”(德语的近似翻译)。是否有人知道如何从子窗体(以及分别从窗体后面的表)中删除这些记录。如果您当前正在“编辑”当前窗体,则它将不允许该操作。编辑记录有时可以通过简单地单击一个字段或其他通常不考虑“编辑”的简单动作来触发。 在Access中,通常通过使用RunCommand方法在删除记录之前撤消任何编辑来避免

我有以下情况:我构建了一个带有子表单的访问表单(这些记录通过某个键链接到主表单的记录)。当我尝试删除子窗体中的任何记录时,会收到以下消息:“Access已暂停操作,因为您和其他用户试图更改数据”(德语的近似翻译)。是否有人知道如何从子窗体(以及分别从窗体后面的表)中删除这些记录。

如果您当前正在“编辑”当前窗体,则它将不允许该操作。编辑记录有时可以通过简单地单击一个字段或其他通常不考虑“编辑”的简单动作来触发。

在Access中,通常通过使用RunCommand方法在删除记录之前撤消任何编辑来避免这种情况:

DoCmd.RunCommand acCmdUndo
还要检查您拥有的“行锁定机制”。我已经有一段时间没有使用Access了,但我记得可以在表属性中使用set。您可以访问这些属性,单击表左上角著名的“点”以显示其属性。如果你在使用Access,你知道我在说什么。

samjudson建议:

DoCmd.RunCommand acCmdUndo

您还可以使用Me.Undo来撤消对运行代码的表单的最后一次编辑

或者,我!MySubForm.Form.Undo可撤消子窗体控件名为“MySubForm”的子窗体中最后一次未保存的编辑

你也可以用我!MyControl.Undo可取消对特定控件的上次编辑

“DoCmd.RunCommand acCmdUndo”将对当前选定的对象应用撤消操作,但您无法确定它是否将在控件或窗体级别应用。使用我建议的命令完全消除了什么是未完成的

但请记住,在触发控件的AfterUpdate事件后,撤消不会撤消对控件的编辑,也不会在触发其AfterUpdate事件后撤消对窗体的编辑(即,数据已保存到基础数据表)