通过Python脚本重组MS Access数据库

ejk8hzay  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(140)

我需要重新组织一个access数据库,并希望通过python来完成。
Access GUI of the ReOrg Button
所以我写了以下内容:

import win32com.client

# path to Access-DB
db_path = 'C:/Access-DB.accdb'

access_app = win32com.client.Dispatch('Access.Application')
access_app.Visible = False
access_app.OpenCurrentDatabase(db_path)

# ReOrg Access DB
access_app.DoCmd.RunCommand(4)

access_app.Quit()

它运行时没有错误,但是db文件的大小在之后是相同的。如果我手动操作,它会缩小尺寸。
我应该提到的是,我能够从运行脚本的机器上打开文件,但我在那台机器上没有有效的office许可证。但是重新组织功能仍然可以手动使用。
由于我找不到关于access_app.DoCmd.RunCommand(4)的文档,我甚至不确定这是否是正确的命令。
我想把重组在一个VBA宏和运行
access_app.DoCmd.RunMacro('MacroName ')
但是我不知道如何在宏中调用reorg特性。

ccrfmcuu

ccrfmcuu1#

命令正确:

DoCmd.RunCommand(acCmdCompactDatabase)

但是,您不能这样做,也不能通过调用宏。
而且,显然不是这样的,因为压缩Access数据库时发生的事情是,文件被写入到临时文件中,验证该文件,然后原始文件被删除,临时文件被重命名为原始名称。
对我来说,这个命令似乎毫无用处。

相关问题