pyodbcを使用してMS Access .mdbデータベースにアクセスしようとしました。私は、ドライバが私のDSNに登録されていると私はpyodbc.dataSources()
pyodbc.dataSources()に記載されていてもドライバが見つかりません
sources = pyodbc.dataSources()
dsns = list(sources.keys())
dsns.sort()
sl = []
for dsn in dsns:
sl.append('%s [%s]' % (dsn, sources[dsn]))
print('\n'.join(sl))
結果で見つけることができる、ODBCドライバを設定している:だから
Excel Files [Microsoft Excel Driver (*.xls)]
MS Access DB [Microsoft Access Driver (*.mdb, *.accdb)]
MS Access Database [Microsoft Access Driver (*.mdb)]
dBASE Files [Microsoft dBase Driver (*.dbf)]
、私はでDBにアクセスしようとしましたこのコマンドを使用して:
con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=H:\access-panda\data\myDB.mdb;')
をしかし、私はこのエラーを取得しておいてください。
Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
私は問題を解決しようとしましたが、運はありません。私は何か見落としてますか?
はい、私のpythonとpyodbcは64ビットです...私はsysWOW64でODBCドライバを更新しましたが、問題は解決されていません。最後に、私はpythonとpyodbcの両方を32ビットにダウングレードしました。 pyodbc-64ビットを正しいドライバを参照するように設定する方法はありますか? –
@SaberAlex - 64ビットPython/pyodbcは、64ビットドライバでのみ動作します。 32ビットOfficeがインストールされている場合、32ビットAccess ODBCドライバを使用するには、Pythonアプリケーションを32ビットとして実行する必要があります。 –
私のpyodbc-64ビットが32ビットドライバを参照し続けると思われる –