我在Me.Dirty = False
或DoCmd.RunCommand acCmdSaveRecord
时出现错误。对于Me.Dirty = False
,它是“无效的属性”,而docmd
则是错误2501。
经过一些实验后,我在save命令之前尝试了Me.Refresh
命令,错误停止了。
我只是分享这个,以防其他人收到粘性保存错误(特别是如果它在调试器中按f5后消失) - 只需在保存之前放一个Me.Refresh
命令就可以了帮助你。
此外,如果有人知道为什么在保存之前刷新修复它,我就会感兴趣。
PS: - 历史记录 - 在我注意到如果我在收到错误后在调试器中按下F5后,记录实际上确实在重试时保存了,没有其他错误。
然后我尝试在一个错误处理程序中为用户添加一个对话框,其中包含一个简历以重试保存,然后在他们单击确定后保存记录并且错误没有重复。
我认为刷新的方式可能有所帮助,因为对话框强制进行某种刷新。这是一种疯狂的猜测,但它确实有效。
答案 0 :(得分:0)
您不能简单地将true
分配给Me.Dirty
,因为Me.Dirty
是只读变量。只有在表单脏了时才能执行命令DoCmd.RunCommand acCmdSaveRecord
。所以我总是这样做:
If Me.Dirty Then
DoCmd.RunCommand acCmdSaveRecord
End If
如果此答案没有帮助,您应该发布您的代码。所以我们可以看到可能导致错误的其他事情。