我刚刚在一台新电脑上安装了64位微软办公室,并安装了64位python 3.6。
我正在尝试使用我的python脚本连接到访问数据库,但是我一直收到以下错误,这表明我有32位ODBC驱动程序而不是64位驱动程序?
关于如何连接而不必安装32位MS Office和32位Python的任何想法?
这是我收到的错误消息:
cnxn = pyodbc.connect(connstr) pyodbc.Error:('IM002','[IM002] [Microsoft] [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")
答案 0 :(得分:3)
我个人没有处理过64位MS Office应用程序或驱动程序,但Access Database Engine 2016 Redistributable包含64位版本,包括ODBC驱动程序(我认为)。
就此而言,即使Access Database Engine 2010 Redistributable也有64位版本。
您还可以使用ODBC数据源管理器来创建和管理DSN(数据源名称)。 32位和64位程序有单独的管理员程序。在我的Windows 10计算机上,快捷方式位于“Windows管理工具”下,标记为“ODBC数据源(32位)”和“ODBC数据源(64位)”。
通过定义DNS,您可以指定用于打开数据库的驱动程序。但是你也必须能够在你的连接参数中引用DNS,遗憾的是我不熟悉你在python程序中如何做到这一点。我至少希望这能给你一个启示的暗示。