尝试以ms访问VBA

时间:2015-07-10 20:45:07

标签: ms-access access-vba

我在Me.Dirty = FalseDoCmd.RunCommand acCmdSaveRecord时出现错误。对于Me.Dirty = False,它是“无效的属性”,而docmd则是错误2501。

经过一些实验后,我在save命令之前尝试了Me.Refresh命令,错误停止了。

我只是分享这个,以防其他人收到粘性保存错误(特别是如果它在调试器中按f5后消失) - 只需在保存之前放一个Me.Refresh命令就可以了帮助你。

此外,如果有人知道为什么在保存之前刷新修复它,我就会感兴趣。

PS: - 历史记录 - 在我注意到如果我在收到错误后在调试器中按下F5后,记录实际上确实在重试时保存了,没有其他错误。

然后我尝试在一个错误处理程序中为用户添加一个对话框,其中包含一个简历以重试保存,然后在他们单击确定后保存记录并且错误没有重复。

我认为刷新的方式可能有所帮助,因为对话框强制进行某种刷新。这是一种疯狂的猜测,但它确实有效。

1 个答案:

答案 0 :(得分:0)

您不能简单地将true分配给Me.Dirty,因为Me.Dirty是只读变量。只有在表单脏了时才能执行命令DoCmd.RunCommand acCmdSaveRecord。所以我总是这样做:

If Me.Dirty Then
   DoCmd.RunCommand acCmdSaveRecord
End If

如果此答案没有帮助,您应该发布您的代码。所以我们可以看到可能导致错误的其他事情。