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

时间:2020-03-05 18:44:54  来源:igfitidea点击:

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

解决方案

回答

如果我们当前正在"编辑"当前表单,则它将不允许执行该操作。有时可以通过单击字段内部或者其他通常不考虑"编辑"的简单操作来触发编辑记录。

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

DoCmd.RunCommand acCmdUndo

回答

还要检查我们拥有的"行锁定机制"。我已经有一段时间没有使用Access了,但是我记得我们可以在表属性中使用set that。我们可以通过单击表左上角著名的"点"来访问这些属性,以显示其属性。好吧,如果我们使用的是Access,那么我们知道我在说什么。

回答

萨姆森建议:

DoCmd.RunCommand acCmdUndo

我们还可以使用Me.Undo(撤消)来撤消对代码运行所在表单的最后编辑。

或者,使用Me!MySubForm.Form.Undo撤消其子窗体控件名为" MySubForm"的子窗体中的最后一个未保存的编辑。

我们也可以使用Me!MyControl.Undo取消对特定控件的最后编辑。

" DoCmd.RunCommand acCmdUndo"会将"撤消"操作应用于当前选定的对象,但是我们不确定是否会在控件或者窗体级别应用"撤消"操作。我建议使用这些命令完全消除歧义。

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