如何使用pyodbc连接到MS Access 97(与工作组mdw)数据库

时间:2015-07-13 16:37:53

标签: python pyodbc ms-access-97

在使用pyodbc的Python脚本中,我正在尝试连接到我们网络上仍然使用的Access 97数据库,但是我无法使连接(或连接字符串)起作用。

我一直收到以下错误:

   pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

这是我的连接字符串,它因上述错误而失败:

conn = pyodbc.connect('Driver={Microsoft Access Driver (.mdb)};Provider=Microsoft.Jet.OLEDB.4.0;Password=mypassword;User ID=myusername;dbq=\\fileserver\\conta\\locationdir\\mydatabase_be.mdb;Persist Security Info=True;Jet OLEDB:System database=\\FILESERVER\\backend\\mdw\\system.mdw')

如您所见,此连接需要使用系统数据库(工作组 - mdw)。该数据库位于网络存储中。

我正在使用Python 2.7。

有人可以帮忙吗?

编辑:在连接字符串中,反斜杠应该是双反斜杠。似乎只显示了一个反斜杠。

2 个答案:

答案 0 :(得分:1)

我发现您必须使用 python 32 位 - 不是因为数据库是 32 位,而是因为 Access97 太旧了,您必须使用旧的 32 位 odbc 驱动程序,而不是 python 3.9 64 位使用的新 64 位驱动程序视窗 10

答案 1 :(得分:0)

好的,我把它整理好了。我的解决方案基于以下代码段(只是获得正确的语法问题):

strConnection = (r"Driver={Microsoft Access Driver (*.mdb)};"
    r"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
    r"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"
    r"Uid=Carlos Antollini;Pwd=carlos")
conn = pyodbc.connect(strConnection)
#your code

web-page

中找到的解决方案

希望这可能对其他人有用。