2015-02-25 59 views
6

Ho problemi a connettere un database in accesso con pyodbc. Ho visto altri codici di esempio che appaiono nei pressi identico al mio lavoro che:Come connettere MS Access a Python usando pyodbc

import pyodbc 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=PYODBC.accdb;UID=me;PWD=pass') 
cursor = cnxn.cursor() 

cursor.execute("SELECT Forename FROM Student") 
row = cursor.fetchone() 
if row: 
    print(row) 

La mia macchina è in esecuzione su Windows 7 Premium a casa a 64-bit. Ho Microsoft Office 2010; 32-bit Sto eseguendo python 3.3; 32-bit

Non ho idea di cosa sia sbagliato, non ho nemmeno ricevuto un messaggio di errore, la shell si apre, ma non succede nulla. Qualsiasi aiuto è molto apprezzato

+0

Perché il driver SQL Server ODBC indica un database di Access? E il database si chiama PYODBC.accdb? Nota: SQL Server è un database del server client mentre Access è un database di file server. Usano driver e parametri di connessione diversi. – Parfait

+0

Per favore [modifica] la tua domanda con maggiori dettagli. La tua macchina ha installato Microsoft Office (o forse solo Microsoft Access)? In tal caso, indicare la versione (2013 ?, 2010 ?, ...?) E se è la versione a 32 o 64 bit. Indica anche se stai eseguendo Python a 32 o 64 bit. –

+0

@GordThompson Ho aggiunto più dettagli alla domanda, scusa avrei dovuto inserirlo in origine. – Michael

risposta

8

Poiché si utilizzano le versioni a 32 bit sia di Microsoft Office che di Python, si consiglia di procedere quando si dispone della stringa di connessione corretta. Dovrebbe apparire come segue:

connStr = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" 
    r"DBQ=C:\full\path\to\your\PYODBC.accdb;" 
    ) 
cnxn = pyodbc.connect(connStr) 
+0

Questo ha risolto il mio problema, grazie mille !! – Michael