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

时间:2017-06-21 15:37:26

标签: python ms-access odbc windows-10 pyodbc

我刚刚在一台新电脑上安装了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")

1 个答案:

答案 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程序中如何做到这一点。我至少希望这能给你一个启示的暗示。

相关问题