64bit的python及32bit的office2010情况下pywin32无法操作access的解决方法

来源:互联网 发布:约瑟夫环递归java 编辑:程序博客网 时间:2024/05/21 10:38

心血来潮,想试一试python是如何通过pywin32来操作access的,顺便了解一下pywin32的系统配置是win7 64bit,安装的office2010 32bit,python是64bit。mdb是老早的一个废弃数据库。下面是一部分运行代码:
import win32com.clientconnection = win32com.client.gencache.EnsureDispatch('ADODB.Connection')
DSN = 'PROVIDER = Microsoft.ACE.OLEDB.12.0;DATA SOURCE = G:/DataBase1.mdb;'</span>
connection.Open(DSN)

但是就在connection.Open()这一步就提示error:

com_error: (-2147352567, 'Exception occurred.', (0, u'ADODB.Connection', u'Provider canno t be found. It may not be properly installed.', u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -21468245 82), None)


com_error: (-2147352567, '发生意外。', (0, 'ADODB.Connection', '未找到提供程序。该程序可能未正确安装。', 'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582), None)

提示说明缺少acces_engine,于是去微软官网上下载AccessDatabaseEngine_X64.exe。但是直接安装会提示:


导致AccessDatabaseEngine_X64.exe不能安装!!解决的方法就是:

运行cmd,然后一路cd到存放AccessDatabaseEngine_X64.exe的文件夹,然后运行 AccessDatabaseEngine_X64.exe /passive。成功搞定:


再次运行python的中相关代码。同样搞定!

不过,还不能高兴!如果此时打开任何一个doc或其他office文档,会提示要重新安装office。解决的方法就是regedit打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths,然后删除mso.dll。

1 0
原创粉丝点击