Articolo wiki
  • Questo articolo wiki è bloccato
Applicabile a 836 visualizzazioni

Excel - Importare in Excel dati da Access (2007/2010/2013) - VBA

Riepilogo

Livello tecnico: Conoscenza di base di Visual Basic for Applications Si applica a: Excel-Access (2007/2010/2013)

Dettagli

NOTA. Gli esempi ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per un loro uso scorretto. Utilizzate gli esempi forniti o file di prova per i vostri test. La correzione delle eccezioni (errori) e il controllo del tipo di dati inserito è solo parziale. I file vogliono essere un semplice esempio che illustra come sia possibile automatizzare Excel e Word e sono forniti solo a scopo dimostrativo.

 

Situazione.

Vogliamo importare in un foglio di Excel i dati di una tabella che si trova in una database di Access (versioni 2007/2010/2013), utilizzando ADO senza riferimenti.

 

Il file xlsexcelAccess.zip contiene:

  • un file di Access che ha un'unica tabella (sufficiente per l'esempio)

 

 

 

Figura 1: La tabella presente nel db di Access

 

  • un file di Excel nel quale andremo ad inserire i dati importati dal file di Access. Nel modulo di codice Modulo1 si trova la Sub mRecuperaDatiDaDatabase con il codice (commentato)

 

 

 

 

Figura 2: Il Foglio1 con i dati importati da Access

 

 

In questo specifico esempio, il database di Access si trova nella stessa directory del file di Excel. Modificare percorso e nome del database con i vostri in questa parte di codice:

 

            cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " _
                & "Data Source=" & ThisWorkbook.Path & _
                "\dbExcelAccess.accdb"

 

Inoltre vengono importati tutti i dati presenti nella tabella Tabella1. Modificare la query SQL con la vostra in questa parte di codice:

 

            rs.Open "SELECT * FROM Tabella1", cn, 1, 3, 1

 

Ad esempio per importare solo i valori superiori a 500 €:

 

            rs.Open "SELECT * FROM Tabella1 WHERE Importo >= 500", cn, 1, 3, 1

 

 

 

Figura 3: Nel Foglio1 i dati importati da Access con la query SQL che considera i valori di Importo uguali o superiori a 500 €

 

Nel sito maurogsc.eu trovate i file d'esempio da scaricare:

 

Un ottimo sito dove approfondire tutto ciò che rigarda ADO è questo (in lingua inglese):

Qui trovate di tutto sulle connessioni ai vari database (in lingua inglese):

 

NOTA. Excel non dispone nativamente di procedure assolutamente sicure per impedire la visualizzazione e la modifica del codice vb e/o per la protezione dei fogli. E’ una cosa da tenere sempre presente quando si distribuiscono file con contenuti ritenuti delicati. Ricordate anche che è possibile lanciare il file di Excel senza che vengano eseguite le macro.


Risorse.

 


 Avvio Pulito di Windows
(courtesy of Microsoft MVP Franco Leuzzi)


Computer infettato da malware (courtesy of Microsoft MVP Vincenzo Di Russo)






 

Commenti (0)

avanzamento