Python und Access mit pyodbc

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
123GuteLaune
User
Beiträge: 27
Registriert: Mittwoch 2. November 2016, 22:35

Hallo zusammen,

ich weiß, dass MS Access nicht das Ding der Dinge ist. Ich muss aber mit diesem Programm arbeiten, da dieses nur firmentechnisch zugelassen ist. Ich habe mehrere GB große Backends also eine Lösung per csv oder anderen Auswegen kann ich nicht gehen.

Ich bekomme folgende Fehler:
Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben (0) (SQLDriverConnect)')

Code: Alles auswählen

import pyodbc
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb *.accdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/Users/XXX/Desktop;DBQ=C:/Users/XXX/Desktop/Data.mdb')

cursor = cnxn.cursor()

cursor.execute("select XYZ from Blubb")
row = cursor.fetchone()
if row:
    print(row)
Folgendes zur Umgebung:
Ich habe eine Windows 7 Enterprise-Version mit 64 bit.
Ein MS Office Version mit 32 Bit (auch Access).
Python 3.5.2 mit 32-Bit, aber ohne pyodbc, die Wheel-Datei lässt sich nicht installieren (Fehler pyodbc-3.0.10-cp35-none-win32.whl is not supported wheel on this platform). Eine Pip Installation direkt aus dem Netz ist durch Firewall technisch Gründen nicht möglich.
Anaconda mit Python 3.5.2 mit 64-Bit und pyodbc

Ich kann keinen 64Bit ODBC-Datenquellen für Datei-DSN erstellen, da kein Access Driver installiert ist oder installiert werden kann(sagt Microsoftseite bei Installation, weil ich eine 32-Bit Office Version habe).

Im 32Bit ODBC-Datenquellen ist MS Access Driver vorhanden und nutzbar nur entsteht obiger Fehler.
Kann mir jemand sagen wie ich die verschieden System zum verknüpfen kriege?
(Ich verzweifel gerade)
Gruß
123GuteLaune
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@123GuteLaune: warum installierst Du nicht einfach Anaconda in 32bit?
123GuteLaune
User
Beiträge: 27
Registriert: Mittwoch 2. November 2016, 22:35

@Sirius: werde ich mal ausprobieren vielleicht klappt es ich dachte, wenn pyodbc nicht auf eine einer 32-Bit Version von Python kriege dann geht das mit Anaconda auch nicht, werde berichten...
123GuteLaune
User
Beiträge: 27
Registriert: Mittwoch 2. November 2016, 22:35

Nach langen hin und her Probieren hab ich folgendes herausgefunden.

Falls man eine Standard windows version (64-bit) hat ist ein 64-bit odbc treiber für access oder andere ms office app nicht dabei -> kann man nachinstallieren

Man sollte checken welche MS Office version man hat (64-Bit oder 32-Bit)

Das gleiche gilt, wenn alles 32-Bit
Wenn dann python 64-Bit, pyodbc 64-bit, ms office 64-bit und man den richtigen ODBC-Schnittstelle für 64-Bit in Windows einen Link eingestellt hat. Dann aber nur dann funktioniert das alles.

Programm arbeitet schnell und ich hab noch keine Fehler bemerkt
Antworten