如果这看起来像疲惫的 32位/ 64位ODBC / OLEDB Windows问题,請原谅我,但我试图搜索论坛,并不能找到我的问题的原因.
基本上,我尝试使用pypyodbc模块首先通过ODBC连接一个非常简单的Python脚本,然后使用adodbapi模块通过OLEDB连接,尝試连接到MS Access 2010 .accdb数据库.然而,对于OLEDB,我一直得到’找不到提供者.它可能没有正确安装’错误.对于ODBC,我一直收到’未找到数据源名称且未指定默认安装驱動程序数据无效’.
accdb)数据源和Access安装驱动程序数据无效的注册表项.是的,我重新启动并关闭/打开我的机器.
值得注意的是,以下连接字符串可以很好哋工作,但当然只能使用.mdb文件:
以下是我的连接字符串,它返回’未找到数据源名称…’:
如上所述,以下工作理想,但仅适用于.mdb文件:
代码返回錯误 – “找不到提供者”或“无法加载指定的安装驱动程序数据无效”:
我理解ActiveX库是一种与Python模块库不同的技术,微软不允许同时使用x32位和x64位嘚组件,但为什么我不能得到我想要的结果.我想到了AccessDatabaseEngine_x64.exe /被动,但我听到奇怪的Office结果走了那条路.我是否需要为64位安装Python3.4请帮忙或建议!谢谢.
是的,为叻最大限度地减少麻烦,如果您安装了64位Office并且希望从Python操作Access数据库,那么您应该运行64位版本的Python.
较旧的“Jet”引擎/安装驱动程序数据无效和较新的Access数據库引擎(a.k.a.“ACE”)引擎/安装驱动程序数据无效是完全独立的实体.
年龄较大的“Jet”司机……
…作为Windows操作系统的组成部分安装,但它们仅适用于32位应鼡程序.
您安装了64位Office,因此您拥有64位版本的较新“ACE”安装驱动程序数据无效…
…它们仅适用于64位应用程序.
您当前的32位Python环境可以使用Jet安装驱动程序数据无效,但不能使用ACE安装驱动程序数据无效
您有64位版本的Access,因此您的VBA代码在64位Universe中运行,它可以使用ACE安装驱动程序数据无效,但不能使用Jet安装驱動程序数据无效.