Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何从Python脚本压缩和修复Access数据库_Python 2.7_Ms Access_Arcgis - Fatal编程技术网

Python 2.7 如何从Python脚本压缩和修复Access数据库

Python 2.7 如何从Python脚本压缩和修复Access数据库,python-2.7,ms-access,arcgis,Python 2.7,Ms Access,Arcgis,我有一个从ArcGIS自定义工具箱运行的python脚本。该脚本处理Access数据库(主要是个人地理数据库)。我想知道的是,有没有一种方法可以从我的python脚本压缩和修复access数据库(特别是个人gdb) 提前感谢您的帮助和建议 Ben.使用Python库并调用VBA方法。请注意,在此过程中需要备份文件路径(一个尚不存在的路径),但在成功压缩后,可以使用os.remove()删除该路径,以满足以下需要: import os import win32com.client srcDB =

我有一个从ArcGIS自定义工具箱运行的python脚本。该脚本处理Access数据库(主要是个人地理数据库)。我想知道的是,有没有一种方法可以从我的python脚本压缩和修复access数据库(特别是个人gdb)

提前感谢您的帮助和建议

Ben.

使用Python库并调用VBA方法。请注意,在此过程中需要备份文件路径(一个尚不存在的路径),但在成功压缩后,可以使用
os.remove()
删除该路径,以满足以下需要:

import os
import win32com.client

srcDB = 'C:\\Path\\To\\Database.accdb'
destDB = 'C:\\Path\\To\\Database_backup.accdb'

oApp = win32com.client.Dispatch("Access.Application")
oApp.compactRepair(srcDB, destDB)

os.remove(destDB)
oApp = None  
使用Python的库并调用VBA方法。请注意,在此过程中需要备份文件路径(一个尚不存在的路径),但在成功压缩后,可以使用
os.remove()
删除该路径,以满足以下需要:

import os
import win32com.client

srcDB = 'C:\\Path\\To\\Database.accdb'
destDB = 'C:\\Path\\To\\Database_backup.accdb'

oApp = win32com.client.Dispatch("Access.Application")
oApp.compactRepair(srcDB, destDB)

os.remove(destDB)
oApp = None  

我知道这很旧,但对以后使用它的人来说,这只是对上面代码的一个小改动(我现在不得不使用它,感谢Parfait发布这个解决方案)

该行指出:

oApp = win32com.client.Dispatch("Access.Application")
应该是

oApp = win32com.Dispatch("Access.Application")

谢谢

我知道这很旧,但对以后使用它的人来说,这只是对上面代码的一个小改动(我现在不得不使用它,感谢Parfait发布此解决方案)

该行指出:

oApp = win32com.client.Dispatch("Access.Application")
应该是

oApp = win32com.Dispatch("Access.Application")

谢谢

我使用的是Windows 7和MS Access 2010。我使用的是Windows 7和MS Access 2010。这行代码对我有效(Python 3.7,Windows 10):
oApp=win32com.client.Dispatch(“Access.Application”)
这行代码对我有效(Python 3.7,Windows 10):
oApp=win32com.client.Dispatch(“Access.Application”)