无法连接到与64位Python的64位MsAccess数据库3.6.ODBC驱动程序错误

问题描述:

我刚在一台新电脑上安装了64位微软办公软件,并且还安装了64位python 3.6。无法连接到与64位Python的64位MsAccess数据库3.6.ODBC驱动程序错误

我想用我的python脚本连接到一个访问数据库,但我不断收到以下错误,这表明我有32位ODBC驱动程序而不是64位驱动程序?

有关如何连接而不必安装32位MS Office和32位Python的任何想法?

这是错误消息我得到:

cnxn = pyodbc.connect(connstr) pyodbc.Error:( 'IM002',“[IM002] [微软] [ODBC驱动程序管理器]数据源名称未发现指定(0)(的SQLDriverConnect)“),默认驱动程序

这里是我的代码:

import pyodbc 
connStr = (
      r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" 
      r"DBQ=C:\Documents\Test.accdb;" 
     ) 
cnxn = pyodbc.connect(connStr) 
cursor = cnxn.cursor() 
cursor.execute("SELECT * FROM Test") 

我个人还没有处理64位的MS Office应用程序或驱动程序,但是Access Database Engine 2016 Redistributable包含64包括ODBC驱动的位版本rs(我认为)。

对于这个问题,即使是Access Database Engine 2010 Redistributable也有一个64位版本。

您还可以使用ODBC数据源管理员来创建和管理DSN(数据源名称)。有针对32位和64位程序的单独的管理员程序。在我的Windows 10计算机上,这些快捷方式位于“Windows管理工具”下,并标有“ODBC数据源(32位)”和“ODBC数据源(64位)”。

通过定义一个DNS,您可以指定用于打开数据库的驱动程序。但是你也必须能够在连接参数中引用DNS,遗憾的是我不熟悉如何在你的python程序中这样做。我至少希望这能够启动一个暗示。

+0

非常感谢,我设法让它工作。我想我的计算机上有一些32位Office的痕迹,所以我卸载了Office,从Access数据库引擎2016 Redistributable链接安装了64位ODBC驱动程序,然后重新安装了Office,一切似乎都很好!谢谢! – NKpanda