您的位置:首页 > 编程语言 > Python开发

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

2015-10-16 09:14 721 查看
心血来潮,想试一试python是如何通过pywin32来操作access的,顺便了解一下pywin32的系统配置是win7 64bit,安装的office2010 32bit,python是64bit。mdb是老早的一个废弃数据库。下面是一部分运行代码:
import win32com.client

connection = 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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: