Anche se Microsoft Access è un sistema chiuso, è possibile interagire con i suoi database (`.mdb` o `.accdb`) da script esterni come quelli in Python. Questo è molto utile per estrarre dati da vecchie applicazioni Access per l'analisi o per la migrazione.
Lo strumento standard per farlo su Windows è la libreria `pyodbc`, che permette a Python di comunicare con qualsiasi database che abbia un driver ODBC (Open Database Connectivity).
Prerequisiti
- Python: Assicurati di usare una versione di Python compatibile con il tuo driver (es. entrambe a 64-bit).
- Driver ODBC per Access: Devi installare il "Microsoft Access Database Engine Redistributable" dal sito di Microsoft.
- Libreria `pyodbc`: Si installa con `pip install pyodbc`.
Connettersi ed Eseguire Query
Il processo consiste nel creare una "stringa di connessione" e usarla per connettersi al database.
import pyodbc
# Definisci il percorso del tuo file di database
db_file = r'C:\percorso\al\tuo\database.accdb'
# Crea la stringa di connessione
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=' + db_file + ';'
)
# Connettiti al database
try:
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
print("Connessione riuscita!")
# Esegui una query
cursor.execute("SELECT Nome, Cognome FROM Clienti WHERE Citta = 'Roma'")
# Itera sui risultati
for row in cursor.fetchall():
print(f"Cliente: {row.Nome} {row.Cognome}")
# Esegui un INSERT (ricorda di fare il commit)
cursor.execute("INSERT INTO Clienti (Nome, Cognome) VALUES (?, ?)", 'Paolo', 'Bianchi')
cnxn.commit()
except pyodbc.Error as e:
print("Errore durante la connessione:", e)
finally:
if 'cnxn' in locals():
cnxn.close()
print("Connessione chiusa.")
Questo approccio ti permette di integrare i dati di un'applicazione Access legacy in workflow di automazione più ampi, ad esempio per estrarre i dati e caricarli in un file Excel o in un database web.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza