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

时间:2013-04-26 19:56:44

标签: vba ms-access access-vba

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

  docmd.runcommand acSaveRecord
  Application.quit

最后。我将行docmd.save更改为docmd.runcommand acSaveRecord,因为有时没有保存记录。我没有将应用程序设置为紧凑并在关闭时进行修复。为什么我收到此消息?

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

1 个答案:

答案 0 :(得分:5)

以下是我发现的内容

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

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

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

Access.AcCommands中等于4的值为acCmdCompactDatabase

因此,应该使用docmd.runcommand accmdSaveRecord(或使用form.dirtyThis blog post简要解释了为什么应该使用form.dirty

奇怪 - 怪异行为的来源是最后一篇here