使用Python将Access应用程序从MDB(2000)转换为ACCDB(2007/2010)

时间:2015-03-17 12:30:42

标签: python database ms-access

我正在尝试将MS Access数据库从版本2000转换为20072010。我必须使用Python实现此目的。

如果我安装MS Access 2007MS Access 2010,则可以。但我希望在不安装MS Access这些版本的情况下执行此操作。我尝试安装MS Access 2010 Runtime,但没有工作。

我尝试了pypyodbc模块,但它只适用于mdb数据库。我也试过跟win32com.client.Dispatch()

    Access.Application (ConvertAccessProject)
    JRO.JetEngine (CompactDatabase)
    DAO.DBEngine (CompactDatabase)

以上都不起作用。

我在互联网上搜索了很多但直到现在才找到任何解决方案。如果有任何解决办法,请告诉我。

2 个答案:

答案 0 :(得分:1)

  

如果我安装MS Access 2007或MS Access 2010,则可以正常运行。但我想[将整个Access应用程序从Access 2000转换为Access 2007或Access 2010]而不安装这些版本的MS Access。我尝试安装MS Access 2010 Runtime,但无法正常工作。

你的目标是不可能实现的。为了将整个Access应用程序(包括表单,报表,模块代码等)从Access 2000转换为Access 2007或Access 2010,您必须安装完整版本的Access 2007或Access 2010,因为这是转换代码所在的位置。

答案 1 :(得分:0)

我只遇到了Python的麻烦,但可能就是这样:

Access.Application.ConvertAccessProject sourcefile, targetfile, acFileFormatAccess2007 

或者,因为常数可能不为P:

Access.Application.ConvertAccessProject sourcefile, targetfile, 12

也许你需要更明确一点:

ap = win32com.client.Dispatch("Access.Application")
ap.ConvertAccessProject(s, t, 12)