我几天来一直在反对这一点。我正在尝试使用pyodbc连接到Microsoft Access数据库,我似乎无法获得正确的连接字符串。这就是我正在使用的:
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Path\to\file.accdb')
我一直收到错误:
Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')
即使我跑dataSources()
,我也看到了:
{'MS Access Database': 'Microsoft Access Driver (*.mdb, *.accdb)', 'dBASE Files': 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 'Excel Files': 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)'}
我有什么东西在这里严重失踪吗?
答案 0 :(得分:6)
这是64位问题。我通过使用32位python和pyodbc来解决它。
答案 1 :(得分:1)
尝试添加Provider=MSDASQL
。这是deprecated,但似乎工作正常:
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=C:\Path\to\file.accdb; Provider=MSDASQL;')