2010-12-28 16 views
4

Ich habe schon seit ein paar Tagen meinen Kopf dagegen schlagen. Ich versuche, Pyodbc zu verwenden, um eine Verbindung mit einer Microsoft Access-DB herzustellen, und ich kann nicht scheinen, um die Verbindungszeichenfolge richtig oder etwas zu erhalten. Dies ist, was ich verwende:Kann nicht mit Access DB verbinden mit pyodbc

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Path\to\file.accdb')

ich den Fehler erhalte:

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

Obwohl, wenn ich dataSources() laufen sehe ich:

{'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)'}

Gibt es etwas, das mir hier sehr fehlt?

+0

Es gibt eine ähnliche Frage, die helfen kann: http://stackoverflow.com/questions/3251702/how-to-connect-pyodbc-to-an-access-mdb-database-file – Fionnuala

+0

Ich hatte bereits gefunden thread und versuchte alles, was es vorschlägt. Trotzdem scheint das nicht funktionieren zu können. – dciliske

+0

Es ist hilfreich, wenn Sie eine Frage stellen, nachdem Sie versucht haben, auf andere SO-Lösungen zu verweisen und zu erklären, warum sie Ihr Problem nicht gelöst haben. –

Antwort

5

Dies ist ein 64-Bitness Problem. Ich löste es mit 32-Bit-Python und Pyodbc.

1

Versuchen Sie, Provider=MSDASQL hinzuzufügen. Es ist deprecated aber es scheint gut zu funktionieren:

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; 
DBQ=C:\Path\to\file.accdb; Provider=MSDASQL;') 
+1

Versuchte es. Funktioniert nicht. Fehle ich wirklich etwas? Ich benutze Windows 7 Professional mit Access 2007 – dciliske

+0

Es funktionierte für mich mit Access XP (2002) Verbindung zu einem .mdb unter Windows 7 Professional. Da es veraltet ist, unterstützt es möglicherweise nicht das neue .accdb-Format. – mwolfe02

+0

Es funktionierte auch für mich mit Access 2007 Verbindung zu einer .accdb unter Windows XP Professional. Ich habe keinen Win7-Computer mit Access 2007 installiert, sodass ich Ihre Umgebung nicht replizieren kann. – mwolfe02