我有以下情况:我使用子表单构建了一个Access表单(这些表单通过某个键链接到主表单的记录)。当我尝试删除子窗体中的任何记录时,我收到以下消息:“由于您和其他用户尝试更改数据,Access已暂停操作”(从德语翻译)。有没有人知道如何从子表单中删除这些记录(以及分别从表单后面的表中删除)。
答案 0 :(得分:1)
如果您当前正在“编辑”当前表单,则它将不允许该操作。有时可以通过简单地单击字段内部或其他您通常不会考虑“编辑”的简单操作来触发编辑记录。
在Access中通常使用RunCommand方法在删除记录之前撤消任何编辑来避免这种情况:
DoCmd.RunCommand acCmdUndo
答案 1 :(得分:1)
DoCmd.RunCommand acCmdUndo
您还可以使用Me.Undo撤消对代码运行的表单的上一次编辑。
或者,Me!MySubForm.Form.Undo撤消子窗体控件名为“MySubForm”的子窗体中的最后一个未保存的编辑。
您也可以使用Me!MyControl.Undo取消对特定控件的上次编辑。
“DoCmd.RunCommand acCmdUndo”将撤消操作应用于当前选定的对象,但您不确定它是否将在控件或表单级别应用。使用我建议的命令完全消除了撤消的内容。
请记住,在控件的AfterUpdate事件触发后,Undo不会撤消对控件的编辑,或者在AfterUpdate事件触发后撤消对表单的编辑(即,数据已保存到基础数据表)
答案 2 :(得分:0)
同时检查您的“行锁定机制”。我有一段时间没有使用Access,但我记得你可以在表属性中使用set。您可以访问这些属性,单击表格左上角的着名“点”以显示其属性。好吧,如果你使用Access,你就知道我在说什么。