Python连接到Access错误

Posted

技术标签:

【中文标题】Python连接到Access错误【英文标题】:Python connect o Access error 【发布时间】:2016-01-04 20:55:42 【问题描述】:

我正在使用 Python 2.7.8 32 位调用 MS Access 2007。

下面是我使用的代码:

import sys
import pypyodbc
import os
import pyodbc

conn = pyodbc.connect(r"DRIVER=Microsoft Access Driver (*.mdb, *.accdb); Dbq=D:\Access\Geocoding.accdb;")
cnxn   = pyodbc.connect(conn)

我收到错误消息:

Traceback(最近一次调用最后一次): 文件“D:\Access\get_Access.py”,第 13 行,在 conn = pyodbc.connect(r"DRIVER=Microsoft Access Driver (*.mdb, *.accdb); Dbq=D:\Access\Geocoding.accdb;") 错误: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

我在网上搜索了一段时间,没有发现代码有什么问题。

【问题讨论】:

Connecting to MS Access 2007 (.accdb) database using pyodbc的可能重复 如果我只运行第一行代码,它会给出相同的错误消息。 我尝试了使用 pyodbc 连接到 MS Access 2007 (.accdb) 数据库中的解决方案,但没有解决问题。 【参考方案1】:

我解决了这个问题。 Access 数据库是在 Access 2013 中创建的。我尝试在 Access 2007 中使用 Python 连接它,这就是问题所在。

我创建了一个 Access 2007 数据库并将所有数据复制到其中。 Python可以毫无问题地连接到它。

【讨论】:

这不是原因,.accdb 文件是 Access 2007-2013 文件类型。这些年没有区别。 是的,这不应该是原因。但是,我可以使用相同的代码来连接在 Access 2007 中创建的 Access 数据库 那么您的机器上有两个 MS Access 安装:2007 和 2013?我希望您不会混淆使用 .mdb 扩展名的 Access 2003 和更早的文件类型。 另外,请注意,Python 连接到 Jet/ACE SQL 引擎(不是 Access GUI 程序)。将 Access 称为数据库是用词不当。它实际上是一个连接 Windows Jet/ACE SQL(.dll 文件)的控制台,与 phpMyAdmin 连接 mysql 或 PgAdmin 连接 Postgre 或 Management Studio 连接 SQL Server 不同。 Access 2013 文件是从不同的环境中创建的。我用python调用Access的机器,只安装了Access 2007【参考方案2】:

尝试在您的数据库路径中使用双斜杠而不是斜杠。并将DBQ全部大写

你的路径应该是这样的:

DBQ=D:\\Access\\Geocoding.accdb;

【讨论】:

OP 使用 raw string、r 文字,可以转义单斜杠。 我改为双斜杠,并尝试使用和不使用 'r' ,仍然无法正常工作。给出相同的错误:文件“D:\Access\get_Access.py”,第 16 行,在 conn = pyodbc.connect(r"DRIVER=Microsoft Access Driver (*.mdb, *.accdb); DBQ= D:\\Access\\Geocoding.accdb;") 错误: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

以上是关于Python连接到Access错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中连接到 MS Access

无法连接到 Access 数据库(“架构不匹配”错误)[重复]

连接到 WebSocket 时如何修复“Access-Control-Allow-Origin”错误?

在 Windows 10 上通过 ODBC 连接到 Access 数据库时出现 IIS 500 错误

无法通过 PHP 连接到 Access 数据库

无法使用 Talend 连接到 Access 2007 数据库