在提交表单时出现"无法压缩打开的数据库"错误

Sco*_*tch 2 ms-access vba access-vba

我刚刚在向数据库提交记录时收到了一个奇怪的错误.它是一个数据输入表单,它调用一堆代码,然后调用

  docmd.runcommand acSaveRecord
  Application.quit
Run Code Online (Sandbox Code Playgroud)

在末尾.我改变了这一行docmd.save,docmd.runcommand acSaveRecord因为记录有时没有被保存.我没有将应用程序设置为紧凑并在关闭时进行修复.为什么我收到此消息?

完整的错误是 You cannot compact the open database through vba or a macro

Sco*_*tch 5

这是我发现的

acSaveRecord 是Access.Constants的成员,等于4.

acCmdSaveRecord 是Access.AcCommands的成员,等于50.

基本上,我使用的命令是"DoCmd.RunCommand 4".

其中的值Access.AcCommands等于4acCmdCompactDatabase

因此,应该使用docmd.runcommand accmdSaveRecord(或使用form.dirty) 此博客文章简要解释了为什么应该使用form.dirty.

奇怪 - 怪异行为的来源是这里的最后一篇文章