Interazione e sincronizzazione tra Excel e Access

di Gianluca Tinti

3 Marzo 2009 09:00

Esaminiamo alcuni esempi di scambio e riutilizzo delle informazioni tra due dei programmi più usati nelle applicazioni da ufficio: Excel e Access

Nel campo dell’Office-Automation due programmi di notevole interesse risultano essere senza dubbio Excel ed Access, che consentono di fare cose molto diverse tra loro: il primo è specializzato nel calcolo, il secondo nella creazione e nella gestione degli archivi.

Può capitare però di tentare di impostare una fattura o una tabella di qualsiasi genere, contenente una serie di calcoli complessi, senza utilizzare uno specifico software di foglio elettronico come Excel. Usare i programmi giusti è una regola fondamentale se si vuole lavorare bene col proprio elaboratore ottimizzando tempi e riducendo al minimo la possibilità di errore.

A questo scopo è utile sfruttare al meglio ciascun programma cercando le possibili relazioni e interazioni con gli altri. In particolare Excel e Access tra loro possono relazionarsi, cooperando nella gestione delle informazioni.

Per esempio si potrebbero calcolare i giorni di ferie, le trattenute e gli straordinari dei propri dipendenti su Excel e fare in modo che gli stessi dati calcolati per ciascun dipendente vengano poi riportati su Access per poter eventualmente eseguire delle ricerche mirate o semplicemente per visualizzare le informazioni in maniera più comprensibile.

In questo tutorial non affronteremo un caso particolare, ma ci concentreremo sulle tecniche. Anzitutto distinguiamo due tipi di interazione tra i nostri due programmi: Passiva e Attiva.

Nel primo caso i dati vengono semplicemente copiati da una cartella di Excel ad una tabella di Access (o Viceversa) dopodiché i dati incollati risultano essere totalmente indipendenti e scollegati dal loro file di origine. Nel secondo caso invece i due file appaiono intimamente collegati e sincronizzati tra loro, per cui modificando l’uno agiamo anche sull’altro.

Copiare le tabelle

Vediamo ora un esempio di Interazione Passiva: vogliamo prendere i dati da una tabella di Access per poi riutilizzarli in un foglio di lavoro di Excel. A questo scopo non facciamo altro che utilizzare un semplice Copia-Incolla e le righe della tabella di Access diventano le righe del foglio Excel.

Apriamo la tabella Access e selezioniamo i record da copiare e dal menu selezioniamo Modifica > Copia (possiamo effettuare la stessa operazione con CTRL+C).

Figura 1. Esempio di selezione

Esempio di selezione

Ora apriamo una cartella di lavoro di Excel e ci posizioniamo su una cella, nel nostro esempio A1. Dal menu di Excel scegliamo Modifica > Incolla (oppure CTRL+V). I record copiati in precedenza dalla tabella Access diventano righe del foglio Excel.

Figura 2. Righe copiate da Access

Righe copiate da Access

Ovviamente è possibile procedere all’inverso in modo analogo per copiare dei dati di un foglio di Excel all’interno di una tabella di Access. In questo caso apriamo il foglio di lavoro Excel contenente i dati, selezioniamo le celle da copiare e ne effettuiamo la copia (CTRL+C oppure menu Modifica > Copia).

Figura 3. Copiare le righe da Excel

Copiare le righe da Excel

Poi apriamo un Database di Access, cerchiamo la sezione dedicata alle tabelle e clicchiamo sull’icona Crea una Tabella mediante l’immissione dei dati.

Figura 4. Tabella vuota

Tabella vuota

Dal menu scegliamo Modifica > Accoda il contenuto degli appunti, dopodiché click sul pulsante Sì di conferma.

Figura 5. Incollare i dati su Access

Incollare i dati su Access

Il primo record della tabella appena creata contiene i nomi dei campi del foglio excel, per cui occorre fare doppio click sull’intestazione di colonna “Campo1” e rinominarla come il corrispondente campo di Excel (in questo esempio “Prodotto”), ripetere la stessa operazione per ogni nuovo campo creato (“Campo1”, “Campo2”, “Campo3” etc).

Alla fine eliminiamo il primo record della tabella e salviamo.

Importare le tabelle di Excel in Access

È possibile anche effettuare una operazione simile a quelle descritte, importando i dati direttamente da una cartella di lavoro di Excel seguendo una procedura guidata messa a disposizione da Access.

Apriamo un database di Access e clicchiamo da menu su File > Carica dati esterni > Importa. Nella parte inferiore della finestra che appare, apriamo il menu Tipo file > Microsoft Excel e selezioniamo il file da cui si vogliono importare i dati.

A questo punto appare la finestra Importazione guidata Fogli di calcolo. Se non è già attivo, attiviamo Mostra fogli di lavoro, per visualizzare l’elenco dei fogli della cartella de Excel.

Figura 6. Selezionare il foglio di calcolo

Selezionare il foglio di calcolo

Scegliamo il foglio da importare e clicchiamo su Avanti. Nella schermata successiva possiamo decidere se i dati contenuti nella prima riga della tabella Excel costituiranno come tutte le altre un record della nuova tabella Access o se invece costituiranno i nomi dei campi della stessa.

Figura 7. Assegnare i nomi ai campi

Prendere i nomi dei campi dalla prima riga della tabella

Nella schermata successiva è possibile scegliere se i dati verranno importati su una nuova tabella o all’interno di una già esistente. Nel secondo caso è preferibile avere già impostato campi analoghi a quelli del foglio di Excel.
Nel nostro esempio scegliamo di creare una nuova tabella.

Figura 8. Scegliere la tabella di destinazione per i dati

Scegliere la tabella di destinazione per i dati

Nel riquadro Opzioni per i campi, al passo successivo, possiamo scegliere se importare o meno ciascun campo e modificarne alcune caratteristiche come il nome e l’assegnazione di un indice. Basta selezionare la colonna sulla quale si vuole agire.

Figura 9. Modificare i campi

Modificare i campi

Tipicamente qui si lascia tutto com’è o si modificano i tipi di dato. Mentre al passo successivo possiamo indicare la chiave primaria. Spesso nelle tabelle Excel non utilizziamo chiavi primarie, in questi casi possiamo avvalerci della generazione automatica, altrimenti facciamo attenzione ad utilizzare un codice univoco per ogni riga.

Figura 10. Selezionare il foglio di calcolo

Selezionare il foglio di calcolo

Infine scegliamo un nome per la nuova tabella.

Sincronizzare Fogli di calcolo Excel e tabelle Access

Negli esempi precedenti vengono sempre generati nuovi file che contengono i valori delle tabelle ma che sono completamente scollegati tra loro. Una volta concluso il trasferimento delle infomrazioni non c’è alcuna relazione tra le tabelle Access e i fogli di lavoro Excel. Questo significa che se aggiorniamo un foglio di calcolo e vogliamo riportare i dati sul database Access, dobbiamo ripetere per intero le procedure.

Questo approccio può anche risultare efficace laddove il trasferimento di informazioni avviene una sola volta, esiste però una procedura che rende più intima l’interazione tra i documenti in questione, creando un vero e proprio collegamento.

Ciè significa che, quando modifichiamo i dati sulla tabella di Access, la modifica si propaga anche ai dati del corrispondente foglio Excel (e viceversa). I due documenti appariranno in sostanza perfettamente sincronizzati.

Vediamo come collegare una cartella di lavoro di Excel ad un database di Access. Anzitutto creiamo un nuovo database Access e cerchiamo nel menu File > Carica dati esterni > Collega Tabelle.

Nella finestra di dialogo, scegliamo Microsoft Excel dal menu Tipo file e selezioniamo l’icona del file Excel da collegare. Infine clicchiamo sul pulsante Collega.

Viene visualizzata una procedura guidata analoga a quella utilizzata per l’importazione, quindi possiamo ripetere le stesse operazioni riportate nella descrizione della procedura già vista.

La differenza la vediamo alla fine della procedura: nella finestra Database di Access appare l’icona di Excel a rappresentare la nuova tabella con i dati collegati.

Figura 11. File Excel come tabella collegata

File Excel come tabella collegata

Una volta terminata la procedura sarà possibile modificare i dati da uno qualsiasi dei file aggiornando contemporaneamente l’altro. Una cosa fondamentale è questa: occorre salvare sempre le modifiche quando necessario per poter aggiornare il documento collegato. Se necessario provare a chiudere e riaprire il documento per aggiornare.