Come importare dati da Excel in Access: tutorial pratico

importare excel in access significa copiare i dati di un foglio o di un intervallo Excel dentro una tabella Microsoft Access, trasformandoli in record che possono essere interrogati, collegati ad altre tabelle, validati e gestiti dal database. L’importazione non mantiene una sincronizzazione automatica con il workbook: dopo il trasferimento, la tabella Access contiene una copia indipendente dei valori. Per questo è importante decidere prima se vuoi davvero importare oppure collegare il foglio.

La procedura descritta vale per Access desktop per Microsoft 365 e Access 2024 su Windows. Access Runtime può eseguire importazioni già automatizzate con macro o VBA, ma non è l’ambiente ideale per configurare manualmente wizard e strutture. Access non è disponibile come applicazione desktop nativa per macOS. Microsoft segnala inoltre che Access non supporta direttamente l’importazione di dati Excel con un’etichetta di riservatezza applicata: in quel caso la gestione della policy deve essere coordinata con l’organizzazione prima del trasferimento.

Indice

  • Importare o collegare Excel
  • Preparare il workbook
  • Tipi dati e intestazioni
  • Importazione in una nuova tabella
  • Accodamento a una tabella esistente
  • Uso di una tabella di staging
  • Automazione con TransferSpreadsheet
  • Date, numeri, zeri iniziali e valori misti
  • ImportErrors e troubleshooting
  • Microsoft 365, Access 2024 e Runtime
  • FAQ

Importare o collegare Excel: la differenza fondamentale

Quando importi un foglio Excel, Access crea una copia dei dati. Se domani qualcuno modifica il file Excel, la tabella importata non cambia. Per aggiornare la copia devi ripetere l’importazione o progettare una procedura di aggiornamento. Questa modalità è ideale quando Access deve diventare il sistema che conserva, valida o storicizza i record.

Quando colleghi un foglio, invece, Access crea una tabella collegata che legge i valori nel workbook. Le modifiche fatte in Excel vengono riflesse nel collegamento, ma Microsoft specifica che il contenuto e la struttura della tabella Excel collegata sono di sola lettura in Access. Il collegamento è quindi adatto quando Excel resta la fonte ufficiale e Access deve soltanto interrogare o includere quei dati in query e report.

Preparare il file Excel

La qualità dell’importazione dipende moltissimo dalla struttura del workbook. Il foglio da importare dovrebbe essere una tabella rettangolare: una riga per record, una colonna per campo, una sola riga di intestazioni e nessuna cella unita nell’area dati. Titoli decorativi, righe vuote, subtotali inseriti tra i record e colonne con più significati rendono più difficile l’interpretazione.

Usa nomi colonna chiari e univoci. Evita intestazioni duplicate come «Data» ripetuta due volte. Se un campo rappresenta il codice cliente, chiamalo CodiceCliente; se rappresenta la data ordine, usa DataOrdine. I nomi coerenti semplificano anche l’accodamento a tabelle esistenti.

Controlla le formule. Access importa i valori risultanti, non trasforma automaticamente la logica delle formule Excel in espressioni o query Access. Se il workbook usa formule complesse, decidi se vuoi importare il risultato o ricreare il calcolo nel database.

Tipi dati: il punto più delicato

Excel è permissivo: nella stessa colonna puoi avere numeri, testo, celle vuote e valori come «N/D». Access richiede un tipo dati più coerente. Il wizard esamina i dati e propone un tipo, ma una colonna mista può produrre valori Null, errori o conversioni inattese.

I codici con zeri iniziali sono un esempio classico. «00125» sembra un numero, ma se è un codice non deve essere calcolato. In Excel impostalo come testo e in Access usa Testo breve. Se lo importi come Numero, gli zeri iniziali vengono persi.

Per le date assicurati che siano vere date Excel e non stringhe che sembrano date. Una colonna con «31/08/2026» memorizzato come testo e altre celle come data reale può generare risultati diversi. In flussi critici è spesso più sicuro importare in staging e convertire dopo.

Procedura passo passo per una nuova tabella

1. Apri il database di destinazione

Lavora su una copia di sicurezza se l’importazione potrebbe influenzare tabelle già usate. Se è un database multiutente, esegui modifiche strutturali in una finestra controllata.

2. Vai su Dati esterni

Nel gruppo Importa e collega scegli Nuova origine dati > Da file > Excel. Seleziona il workbook da importare.

3. Scegli l’importazione

Seleziona l’opzione che importa i dati in una nuova tabella nel database corrente. Non scegliere il collegamento se l’obiettivo è creare una copia locale modificabile.

4. Seleziona foglio o intervallo

Indica il foglio o l’intervallo denominato. Se nel workbook ci sono più tabelle, usa un intervallo ben definito per evitare righe decorative o dati non pertinenti.

5. Indica le intestazioni

Se la prima riga contiene i nomi campo, attiva l’opzione corrispondente. Controlla l’anteprima: le intestazioni devono diventare nomi campo, non il primo record.

6. Verifica i tipi

Per ogni campo controlla nome, tipo e indicizzazione. Un ID numerico può essere Intero lungo, una data Data/Ora, un importo Valuta o Numero con precisione appropriata, un codice Testo breve.

7. Definisci la chiave primaria

Puoi lasciare che Access aggiunga un’Autonumerazione oppure selezionare un campo univoco della fonte. Non scegliere come chiave un valore che può ripetersi.

8. Completa e verifica

Assegna un nome alla tabella e termina. Aprila e confronta il numero di record con Excel. Controlla primi, ultimi e alcuni record casuali.

Accodare Excel a una tabella esistente

Se esiste già una tabella Access con struttura definita, puoi accodare i dati. In questo caso i valori devono rispettare i tipi, la chiave primaria, gli indici univoci, i campi obbligatori e le regole di convalida. Un record duplicato può essere rifiutato; una stringa troppo lunga può essere troncata o generare errore.

Per flussi aziendali è spesso meglio non accodare direttamente dal file esterno. Importa prima in una tabella di staging, controlla i record e usa una query di accodamento verso la tabella definitiva. Questa strategia rende più semplice identificare duplicati e conversioni errate prima di toccare i dati operativi.

Perché usare una tabella di staging

Una tabella di staging è una zona temporanea. Può avere campi più permissivi, spesso testo, per acquisire il file senza perdere record. Dopo l’importazione esegui query di controllo e trasformazione. Solo i record validi vengono trasferiti nelle tabelle definitive.

Esempio: ricevi Clienti_Agosto.xlsx con CodiceCliente, RagioneSociale, Provincia, DataIscrizione e Fatturato. Importi in stgClientiAgosto. Cerchi CodiceCliente Null, duplicati, province non valide, date future e fatturati non numerici. Correggi o scarti le righe errate e poi accodi a tblClienti.

La staging è utile soprattutto quando i file arrivano da soggetti esterni o vengono prodotti da sistemi che possono cambiare schema. Evita che un problema nel file comprometta direttamente il modello relazionale.

Automazione con VBA e TransferSpreadsheet

DoCmd.TransferSpreadsheet consente di automatizzare importazioni ed esportazioni tra Access e fogli di calcolo supportati. Un esempio per un file XLSX:

Sub ImportaExcel()
On Error GoTo GestErr
Dim fileXls As String
fileXls = CurrentProject.Path & "\Input\Clienti_Agosto.xlsx"

If Dir(fileXls) = "" Then
    MsgBox "File non trovato", vbExclamation
    Exit Sub
End If

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, _
    "stgClientiAgosto", fileXls, True

MsgBox "Importazione completata", vbInformation
Exit Sub
GestErr:
MsgBox Err.Number & " - " & Err.Description, vbExclamation
End Sub

Il parametro True indica che la prima riga contiene nomi campo. Prima di automatizzare, completa almeno un’importazione manuale riuscita e verifica il tipo di foglio. Il codice deve controllare l’esistenza del file, gestire errori e registrare l’esito.

Importare un intervallo specifico

TransferSpreadsheet può lavorare anche con intervalli, ma per procedure ripetitive un intervallo denominato stabile è spesso più leggibile. Se il foglio cresce, assicurati che l’intervallo includa tutte le nuove righe. Le tabelle strutturate di Excel possono facilitare la gestione lato workbook, ma verifica sempre come Access vede l’area.

Date e impostazioni locali

Le date sono sensibili alle impostazioni locali. Un file creato su un sistema con convenzioni diverse può contenere stringhe ambigue. Preferisci date reali Excel e, quando controlli stringhe, formati non ambigui come ISO yyyy-mm-dd. In Access usa Data/Ora e non Testo per valori che devono essere filtrati e ordinati cronologicamente.

Se importi date come testo in staging, valida con IsDate prima di CDate. Non convertire alla cieca: una stringa invalida può generare errore o, peggio, essere interpretata in modo diverso da quello atteso.

Numeri, decimali e valuta

Controlla separatore decimale e migliaia. Un file proveniente da un sistema con punto decimale può essere interpretato diversamente su un PC italiano. Per importi monetari usa il tipo Valuta quando appropriato, perché riduce problemi di arrotondamento binario tipici dei floating point.

Per identificatori grandi verifica il tipo. Access moderno supporta Numero grande in scenari compatibili, ma il database e le integrazioni devono essere progettati consapevolmente. Non convertire un ID SQL Server BIGINT in Intero lungo se può superare il limite.

Valori misti e colonne problematiche

Se una colonna contiene 100 numeri e una stringa «N/D», il wizard può prendere una decisione che non rappresenta tutti i valori. Normalizza il file prima dell’importazione oppure usa staging testo. La seconda opzione è spesso migliore quando non controlli la fonte.

Non considerare «N/D», «-» o «nessuno» equivalenti a Null senza una regola esplicita. In staging puoi usare query Update per trasformare i marker in Null solo nei campi dove ha senso.

ImportErrors

Quando Access non riesce a importare alcune righe, può creare una tabella degli errori con informazioni sul campo o sulla riga. Non cancellarla subito. Confronta il record con Excel e identifica la causa: tipo non compatibile, chiave duplicata, campo troppo lungo o valore obbligatorio mancante.

Conta quanti record sono stati importati e quanti rifiutati. Un messaggio «importazione completata» non è sufficiente se 500 righe su 10.000 sono finite in errore.

Evitare duplicati

Per importazioni periodiche usa una chiave stabile. Se il file contiene IDOrdine, imposta una chiave o indice univoco nella tabella definitiva. Se non esiste un ID, definisci una chiave business composta da campi che identificano realmente il record. Non affidarti al numero di riga Excel.

Con staging puoi creare una query che seleziona solo record non presenti, usando LEFT JOIN o NOT EXISTS, e poi accodarli. Questo è più robusto di un’importazione diretta senza controllo.

Salvare i passaggi di importazione

Access consente di salvare i dettagli di molte operazioni di import/export come specifiche. Una specifica memorizza file, destinazione e opzioni necessarie per ripetere l’operazione. È utile se ricevi ogni mese un file con lo stesso schema.

Una specifica non rende però sicuro un file con struttura cambiata. Prima dell’esecuzione periodica controlla che esistano le colonne attese e registra eventuali differenze.

Access Runtime

In Runtime l’utente non deve aprire il wizard e configurare i campi. Prepara un pulsante che controlla il file, esegue TransferSpreadsheet o una macro, mostra un riepilogo e registra gli errori. Prova il processo su un PC Runtime reale.

Se l’utente deve scegliere il file, puoi progettare una maschera con percorso configurabile o un file picker compatibile con 32/64 bit. Evita API non dichiarate correttamente.

Microsoft 365, Access 2024 e Windows

I flussi Dati esterni per Excel sono disponibili nelle versioni desktop correnti di Access, incluse Microsoft 365 e Access 2024. I nomi esatti delle schede possono cambiare leggermente tra aggiornamenti, ma il concetto Importa e collega resta stabile.

Access è un’applicazione Windows. Se il team usa Mac, non presentare Access come soluzione nativa macOS: valuta un ambiente Windows remoto/virtualizzato o una diversa architettura.

32 e 64 bit

TransferSpreadsheet è una funzione Access e non richiede codice diverso solo per 32/64 bit. Le differenze diventano importanti con componenti esterni, provider, API e librerie. Se il progetto usa automazione Excel via COM, testa la stessa architettura Office prevista sui PC utente.

Problemi comuni e troubleshooting

Alcune righe finiscono in ImportErrors

Controlla tipo dati, lunghezza, chiavi duplicate e campi obbligatori. Apri la tabella errori e confronta le righe con il workbook.

I codici perdono gli zeri iniziali

Tratta i codici come testo sia in Excel sia in Access. Se Excel li ha già trasformati in numeri, correggi la fonte o applica una regola di ricostruzione documentata.

Le date vengono interpretate male

Verifica che siano vere date e controlla le impostazioni locali. Per dati esterni usa staging e conversioni esplicite.

Access crea il tipo sbagliato

Crea prima la tabella Access con i tipi desiderati o importa in staging testo. Non lasciare che l’inferenza del wizard sia l’unica regola.

L’importazione duplica record

Usa chiavi univoche, staging e query anti-duplicato. Una nuova importazione non sa automaticamente quali record sono già presenti.

Il file non viene importato per policy di riservatezza

Microsoft indica che Access non supporta l’importazione di dati Excel con etichetta di riservatezza applicata. Segui la policy aziendale e coordina l’eventuale rimozione/reapplicazione con chi gestisce la sicurezza.

Il file è aperto da un altro utente

In molti casi l’importazione può leggere il file, ma blocchi o modifiche contemporanee possono creare risultati incoerenti. Per flussi periodici definisci una cartella di consegna e importa solo file considerati completi.

Controllo qualità

Dopo l’importazione confronta numero di record, somma di un campo numerico significativo, minimo/massimo data e un campione casuale. Controlla anche Null e valori lunghi. Se il file contiene 12.548 righe e Access ne importa 12.531, devi spiegare le 17 mancanti.

Registra data importazione, nome file e numero record. Per flussi mensili conserva una tabella LogImportazioni. Se un file viene processato due volte, il log aiuta a bloccare duplicazioni.

Sicurezza e manutenzione

Non importare file ricevuti da fonti non affidabili senza controlli. Il rischio principale non è solo il contenuto Excel, ma la qualità dei dati: codici falsi, valori fuori scala e intestazioni cambiate possono compromettere processi downstream.

Se il database è multiutente, separa front-end e back-end quando appropriato. Esegui l’importazione in un punto controllato e non da ogni copia del front-end contemporaneamente. Per processi centralizzati valuta un PC o servizio responsabile del caricamento.

Quando Excel non è più la fonte adatta

Se molti utenti devono aggiornare contemporaneamente i dati, se servono relazioni forti, audit, permessi granulari o grandi volumi, considera una fonte database come SQL Server. Excel resta ottimo per scambio e analisi, ma non è necessariamente il miglior back-end operativo.

Collegamenti utili su Guide-Pratiche.it

Fonti Microsoft

FAQ

Importare Excel aggiorna automaticamente i dati?

No. L’importazione crea una copia. Per vedere gli aggiornamenti del workbook valuta un collegamento.

Posso importare in una tabella esistente?

Sì, se scegli l’accodamento e i dati rispettano struttura, chiavi e regole della tabella.

Posso automatizzare l’importazione?

Sì con TransferSpreadsheet, macro o specifiche salvate. Prima valida manualmente il formato.

È meglio importare direttamente nella tabella definitiva?

Per fonti esterne o periodiche è più robusto usare staging, controllare e poi accodare.

Access importa le formule Excel?

Importa i valori risultanti, non ricrea automaticamente la logica delle formule come query Access.

Cosa succede ai duplicati?

Dipende dai vincoli. Con una chiave univoca vengono rifiutati; senza vincoli possono entrare, quindi servono controlli.

Funziona in Access Runtime?

Sì se l’automazione è già predisposta e testata. La progettazione e manutenzione vanno fatte con Access completo.

Checklist operativa

Controlla file, foglio, intestazioni, tipi, zeri iniziali, date, decimali, chiave, numero righe e destinazione. Decidi se importare in staging. Salva una copia della fonte. Esegui il wizard. Controlla ImportErrors. Confronta conteggi e totali. Solo dopo trasferisci i record definitivi.

Per procedure periodiche registra il nome file, hash o data, numero record, esito e utente. Impedisci che lo stesso file venga elaborato due volte. Documenta lo schema atteso e aggiorna la procedura se cambiano colonne o formati.

Conclusione

Importare Excel in Access è semplice solo quando il file è già pulito; nei flussi reali la qualità dipende dalla preparazione, dai tipi dati e dalla verifica. Usando una tabella di staging, chiavi univoche, controlli su date e numeri e un’automazione con gestione errori puoi trasformare un foglio Excel in dati Access affidabili senza duplicazioni o conversioni invisibili. Per esigenze di aggiornamento continuo valuta invece il collegamento, ricordando che Excel collegato è di sola lettura in Access.

Lascia un commento