Importare dati da database Access .accdb (dalla versione 2007 in poi) con ADO (ActiveX Data Objects) Sul sito esistono già due ottimi esempi di utilizzo di connessioni ADO proposti da Elio Buonocore ma una recente richiesta ha evidenziato una difficoltà di quelle soluzioni nel collegarsi a database Access di recente produzione: a partire dalla versione Access 2077 i file salvati, che portano l'estensione ".accdb" anzichè ".mdb" non possono essere connessi usando il server Jet.OLEDB.4.0, ma ACE.OLEDB.12.0, quindi i lavori di Elio possono essere modificati nella stringa di connessione in questo modo : "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tuodata.accdb & ";'" Ricordarsi di impostare nell'Editor del VBA, dal menù Strumenti/Riferimenti le due librerie "Microsoft ActiveX Data Object 6.0 Library" (o versione precedente sul vostro computer) e dato che nelle istruzioni viene usato anche ADOX, la libreria "Microsoft ADO Ext. 6.0 for DDL and Security" dcome nell'immagine sottostante, senza le quali le istruzioni non funzioneranno generando errori. I file di esempio che troverete possiedono già questi collegamenti, ed io presento una versione "alleggerita" idonea a lavorare SOLO con i database .accdb, inoltre come scelta dei dati da importare lascio solo 2 ascelte: 1) Importare tutti i campi di una tabella selezionata 2) Selezionare i campi da una tabella scelta ed importare solo quelli. Le istruzioni VBA sono commentate e visibili nell'editor di VBasic.Il funzionamento è semplice; un pulsante consente di cercare e selezionare il database col il quale viene popolata la ListBox1 (gialla); selezionando con un click una detlle tabelle mostrate, si attivano le istruzioni per riempire la ListBox2 (verde) con i nomi dei campi della tabella selezionata; a questo punto si hanno le due scelte: importare i dati di tutti i campi della tabella, oppure, cliccando sui nomi dei campi nella ListBox2, popolare la ListBox3 (celeste) con detti nomi, quindi premere il pulsante compony query e importa dati dei campi scelti. Ognuno potrà provare a modificare la query MiaQuery per adattarla a richieste particolari. Nelle istruzioni ho impostato la riga 3 del foglio 1 come destinataria dei nomi dei campi e indi dei dati; chi lo desiderà dovrà indicare i propri riferimenti. Ogni listbox si pulisce con un doppio click sulla stessa.
file scaricabile e consultabile per Excel 2003 : PrimoAdo.rar per excel 2007/2010: PrimoAdo_x.rar
prelevato sul sito www.ennius.altervista.org |