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

有帮助吗?

解决方案

如果您当前正在“编辑”当前表单,则它将不允许该操作。有时只需单击字段内部或您通常不会考虑“编辑”的其他简单操作即可触发编辑记录。

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

DoCmd.RunCommand acCmdUndo

其他提示

萨姆朱德森建议:

DoCmd.RunCommand acCmdUndo

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

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

您还可以使用 Me!MyControl.Undo 取消对特定控件的上次编辑。

“DoCmd.RunCommand acCmdUndo”会将撤消操作应用于当前选定的对象,但您无法确定它是否会应用于控件或表单级别。使用我建议的命令可以完全消除所撤消的操作的歧义。

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

还要检查您拥有的“行锁定机制”。我有一段时间没有使用 Access,但我记得您可以在表属性中设置它。您可以通过单击表格左上角著名的“点”来访问这些属性,以显示其属性。如果您使用 Access,您就会知道我在说什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top