Talvolta capita che i dati elaborati in Access debbano essere esportati in Excel. Del resto, Access gestisce bene i dati, ma Excel ha funzionalità di calcolo e di elaborazione di reportistica (tabelle pivot, power pivot, grafici ecc) di tutt’altro livello. Lasciamo a ogni software il suo specifico compito! Certo, possiamo esportare una tabella da Access cliccando con il tasto destro sulla tabella, poi scegliamo Esporta ecc. Ci sono, però, occasioni in cui si tratta di esportare solo determinati record, esito di una ricerca o di una selezione effettuata attraverso una maschera (vedi i video sull’uso delle caselle combinate a cascata ecc). Se è questa la nostra esigenza, possiamo creare un semplice pulsante di comando e con una sola istruzione VBA esportare in un file Excel il set dei record che sono all’origine della nostra maschera.
Supponiamo di avere una maschera che visualizza un set di record. In Access ogni maschera ha una proprietà che si chiama Origine record (la troviamo tra le proprietà Dati: è la prima).
Il procedimento per esportare i record di Access in un file Excel è molto semplice:
1) aggiungiamo nell’intestazione della maschera un pulsante di comando (se si apre la creazione guidata, potete annullare: il pulsante viene creato ugualmente)
2) tra le proprietà del pulsante sotto la categoria Altro abbiamo la prima, importante: Nome elemento. Dobbiamo assegnare un nome al pulsante, altrimenti quando scriviamo il codice VBA diventa tutto più complicato. Possiamo chiamare il pulsante: cmdEsporta. cmd è l’acronimo che sta per CommandButton (pulsante di comando, appunto)
3) tra le proprietà Evento ci posizioniamo sulla prima: Su clic. Ora clic con il tasto destro e scegliamo Genera…
4) nella finestra che si apre scegliamo Generatore di codice
5) ci troviamo così nel VBA:
Private Sub cmdEsporta_Click() End Sub
6) creiamo una riga vuota prima di End Sub e digitiamo la seguente istruzione:
Private Sub cmdEsporta_Click() DoCmd.TransferSpreadsheet acExport, , Me.RecordSource, "c:\prova.xlsx" End Sub
Vogliamo esportare in formato Excel (TransferSpreadsheet ac Export).
La tabella da esportare corrisponde all’origine record della nostra maschera. La proprietà RecordSource corrisponde appunto alla proprietà Origine record di cui parlavamo prima.
Il nome del file che sarà creato è: prova.xlsx e sarà memorizzato in C:\.
Attenzione a digitare tutto con precisione e con le virgole indicate.
7) Basterà aprire la maschera e premendo sul pulsante sarà creato il nostro file Excel. Se il file esiste già, sarà comunque sovrascritto senza alcun avviso.