collegare access a un file Excel significa creare in Microsoft Access una tabella collegata che mostra i dati presenti nel workbook senza copiarli stabilmente nel file ACCDB. Access continua a leggere la fonte Excel: se i valori cambiano nel foglio, le modifiche vengono riflesse nella tabella collegata. Microsoft specifica però che contenuto e struttura di una tabella Excel collegata sono di sola lettura in Access, quindi le modifiche vanno effettuate nel workbook sorgente.
La procedura vale per Access desktop per Microsoft 365 e Access 2024 su Windows. Access Runtime può usare collegamenti già configurati e può eseguire codice di verifica o relink, ma non è l’ambiente nel quale progettare il collegamento manualmente. Access non esiste come applicazione desktop nativa macOS.
Indice
- Che cos’è una tabella Excel collegata
- Collegare o importare: differenze
- Preparare il workbook
- Procedura passo passo
- Fogli e intervalli denominati
- Query e report basati sul collegamento
- Sola lettura e limiti
- Gestione tabelle collegate
- Relink con VBA
- Percorsi di rete e Runtime
- Prestazioni e troubleshooting
- FAQ
Che cos’è una tabella Excel collegata
Quando colleghi un foglio o un intervallo Excel, Access crea un oggetto tabella nel riquadro di navigazione. L’oggetto non contiene una copia autonoma dei record: mantiene informazioni sulla fonte e legge i dati dal workbook. È quindi possibile usare la tabella in query, join, report e maschere di sola lettura come se fosse una fonte Access, con i limiti imposti dal tipo Excel.
Questo modello è utile quando il reparto che possiede il dato continua a lavorare in Excel. Per esempio, l’ufficio acquisti può mantenere Listino.xlsx mentre un database Access usa quel listino nei report ordini. Access vede i prezzi aggiornati senza dover importare ogni volta una copia.
Collegare o importare
L’importazione crea una fotografia dei dati in una tabella locale. Dopo l’importazione, le modifiche al workbook non aggiornano automaticamente Access. Il collegamento mantiene invece la dipendenza dal file Excel e mostra i dati correnti della fonte. Se Access deve possedere e modificare i record, l’importazione è normalmente più adatta; se Excel resta la fonte autorevole, il collegamento può essere la scelta corretta.
Non puoi collegare Excel a una tabella Access esistente per accodare dati. Il collegamento crea una nuova tabella collegata. Se vuoi trasferire valori verso una tabella locale, usa una query di accodamento, una query make-table o una vera importazione.
Preparare il workbook
Il foglio dovrebbe avere una sola riga di intestazioni, colonne coerenti e nessuna cella unita nell’area dati. Evita righe decorative, subtotali e note inserite nel mezzo. Access interpreta un’area rettangolare di dati: più il foglio assomiglia a una tabella, più il collegamento è prevedibile.
Usa tipi coerenti. Se una colonna Prezzo contiene numeri e stringhe come «da definire», Access può inferire un tipo che produce #Num! per alcuni record. Se una colonna Codice contiene 00125, trattala come testo per preservare gli zeri iniziali.
Quando possibile usa un intervallo denominato stabile. Un intervallo chiamato ListinoProdotti rende chiaro quale porzione del workbook Access deve leggere e riduce il rischio che righe decorative entrino nella fonte.
Procedura passo passo
1. Apri il database Access
Lavora su una copia se stai modificando un’applicazione in uso. Il collegamento aggiungerà una nuova tabella, ma query e report successivi possono dipenderne.
2. Vai su Dati esterni
Scegli Nuova origine dati, quindi Da file e infine Excel. Seleziona il workbook sorgente.
3. Scegli «Collega all’origine dati»
Seleziona l’opzione che crea una tabella collegata. Non scegliere importazione se vuoi leggere sempre i dati del file.
4. Seleziona foglio o intervallo
Indica il foglio o intervallo denominato. Controlla l’anteprima e assicurati che la prima riga sia quella delle intestazioni.
5. Conferma le intestazioni
Attiva l’opzione che usa la prima riga come nomi campo se appropriato. Nomi chiari evitano riferimenti come F1, F2 e semplificano le query.
6. Assegna il nome alla tabella
Usa un nome che faccia capire che è collegata, per esempio lnkListinoExcel. Il prefisso non è obbligatorio, ma aiuta nella manutenzione.
7. Apri e verifica
Controlla numero di record, date, numeri, Null e valori misti. Prova una modifica nel workbook e verifica che, dopo il refresh o la riapertura, Access mostri il nuovo valore.
8. Testa le query dipendenti
Se il link verrà usato in join con tabelle Access, crea una query semplice e controlla cardinalità e prestazioni prima di costruire report complessi.
Esempio concreto: listino prodotti
L’ufficio acquisti mantiene Listino.xlsx con CodiceProdotto, Descrizione, Prezzo e DataAggiornamento. In Access colleghi l’intervallo ListinoProdotti e chiami la tabella lnkListino. Una query unisce tblRigheOrdine a lnkListino tramite CodiceProdotto per mostrare il prezzo corrente. Se l’ufficio modifica il prezzo in Excel, Access legge il nuovo valore. Gli utenti Access non devono modificare la tabella collegata: il workbook rimane la fonte.
La tabella Excel collegata è di sola lettura
Questo è un punto importante. Microsoft indica che il contenuto e la struttura di una tabella collegata Excel sono read-only in Access. Se l’utente prova a cambiare un valore dal foglio dati Access, l’operazione non è consentita. Non è un errore da correggere: è il comportamento previsto.
Se devi permettere la modifica in Access, importa i dati in una tabella locale e gestisci poi la sincronizzazione o il processo di aggiornamento. Non usare un collegamento Excel come se fosse un back-end Access modificabile.
Usare il collegamento nelle query
Una tabella collegata può partecipare a query di selezione, join, aggregazioni e report. Per esempio:
SELECT O.IDOrdine, O.CodiceProdotto, L.Descrizione, L.Prezzo FROM tblOrdini AS O LEFT JOIN lnkListino AS L ON O.CodiceProdotto = L.CodiceProdotto;
Verifica che i campi di join abbiano tipi compatibili. Se CodiceProdotto è testo in Excel e numero in Access, il join può fallire o richiedere conversioni costose. Meglio correggere la struttura alla fonte.
Usare il collegamento nei report
Puoi creare una query che combina dati Access ed Excel e usarla come RecordSource di un report. Questo è comodo per listini, budget o tabelle di riferimento. Ricorda però che il report dipende dalla disponibilità del workbook. Se il file è spostato o non raggiungibile, il report può fallire.
Per report critici considera una procedura che verifica il link all’avvio e mostra un messaggio chiaro se la fonte non è disponibile.
Percorsi locali e di rete
Il collegamento memorizza informazioni sulla posizione della fonte. Un percorso locale come C:/Dati/Listino.xlsx funzionerà soltanto sui PC che vedono quel file nello stesso punto. In un ambiente multiutente usa una condivisione di rete coerente, per esempio //Server/Condivisa/Listino.xlsx, e documenta il percorso reale usato dall’organizzazione.
Testa i permessi con un account utente normale. Un amministratore potrebbe accedere a una cartella che gli utenti Runtime non possono leggere.
Gestione tabelle collegate
Microsoft Support documenta Gestione tabelle collegate come strumento per mantenere le origini collegate. Puoi aggiornare una fonte, modificare informazioni, cercare una tabella, aggiungere nuove fonti e rilinkare collegamenti con stato Failed.
Una buona sequenza è: aggiorna la fonte, verifica lo stato, correggi il percorso se necessario e rilinka le tabelle fallite fino a ottenere Success. Dopo il relink apri le query e i report dipendenti.
Cosa succede se il file viene spostato
Se Listino.xlsx passa da una cartella locale a una condivisione del server, il collegamento vecchio non può più trovare la fonte. Apri Gestione tabelle collegate, seleziona l’origine e indica il nuovo percorso. Non eliminare e ricreare subito tutte le query: prima ripristina il link.
Se cambia anche il nome del foglio o dell’intervallo, potrebbe essere necessario selezionare nuovamente l’oggetto sorgente. Il collegamento può essere tecnicamente valido ma incompatibile con le query se cambiano i nomi campo.
Relink con VBA
Per applicazioni distribuite puoi automatizzare la verifica dei collegamenti. Con DAO TableDef puoi leggere la proprietà Connect e usare RefreshLink. Un esempio semplice:
Sub VerificaLinkExcel()
Dim tdf As DAO.TableDef
For Each tdf In CurrentDb.TableDefs
If InStr(1, tdf.Connect, "Excel", vbTextCompare) > 0 Then
On Error Resume Next
tdf.RefreshLink
If Err.Number <> 0 Then
Debug.Print tdf.Name, Err.Number, Err.Description
Err.Clear
End If
On Error GoTo 0
End If
Next
End Sub
Non usare Resume Next per nascondere tutto. Qui è limitato alla singola operazione per registrare il link fallito. In un’app reale salva l’errore in una tabella log e mostra all’utente un messaggio comprensibile.
Refresh dei dati
Se cambia soltanto il contenuto del workbook, non devi reimportare. Chiudi e riapri la tabella o query o esegui il refresh dell’oggetto. Se i dati sembrano vecchi, verifica che stai osservando il workbook corretto e che non esistano copie con lo stesso nome in cartelle diverse.
Intervalli che crescono
Un problema comune è collegare un intervallo statico e poi aggiungere record oltre l’ultima riga. Le nuove righe restano fuori. Usa un intervallo denominato dinamico o una tabella Excel strutturata quando appropriato e verifica che Access riconosca l’area attesa.
Valori misti e #Num!
Access esamina i dati per inferire i tipi. Una colonna con numeri e testo può produrre #Num!. Uniforma il workbook, soprattutto nelle prime righe. Per codici e identificatori usa testo; per date usa vere date; per importi usa numeri coerenti.
Prestazioni
Le query su Excel collegato possono essere più lente di quelle su tabelle locali Access, soprattutto su rete. Riduci il volume, evita funzioni che obbligano Access a leggere tutte le righe e usa filtri selettivi. Se il file è molto grande e l’analisi è frequente, valuta l’importazione in staging oppure un database server.
Non usare Excel collegato come sostituto di un back-end multiutente ad alta concorrenza. È una fonte pratica per dati mantenuti nel workbook, non un motore relazionale.
Access Runtime
Runtime può usare le tabelle collegate se il file è raggiungibile. Prevedi una schermata di diagnostica o un pulsante amministrativo che verifica i link. L’utente Runtime non dovrebbe dover entrare in strumenti di progettazione.
Se il front-end viene distribuito su molti PC, evita percorsi locali hard-coded. Conserva il percorso in una tabella configurazione e crea una procedura di relink controllata.
Microsoft 365, Access 2024 e 32/64 bit
Il collegamento Excel è supportato in Access desktop per Microsoft 365 e Access 2024. I menu possono variare leggermente tra versioni, ma il flusso Dati esterni e Nuova origine dati resta il riferimento concettuale.
Il link nativo non richiede codice diverso solo per 32/64 bit. Se però automatizzi Excel via COM o usi API per selezionare file, verifica compatibilità e riferimenti. Compila il progetto VBA su entrambe le architetture previste.
Problemi comuni e troubleshooting
La tabella è di sola lettura
È previsto per Excel collegato. Modifica il workbook oppure importa i dati se devono diventare modificabili in Access.
Il file è stato spostato
Usa Gestione tabelle collegate per aggiornare il percorso. Non ricreare tutte le query.
Access non vede tutte le righe
Controlla l’intervallo, l’area usata, righe vuote e intervalli denominati. La fonte collegata può non includere le nuove righe.
Compaiono #Num!
Uniforma i tipi nel foglio. Le colonne miste possono essere interpretate in modo errato.
Funziona solo sul PC dello sviluppatore
Quasi sempre è un problema di percorso o permessi. Testa con l’account dell’utente e usa una condivisione coerente.
Le query sono lente
Riduci righe e colonne, filtra prima possibile e valuta importazione o staging per analisi pesanti.
Il relink riesce ma la query fallisce
Il file esiste, ma nomi o tipi campo possono essere cambiati. Confronta lo schema con quello originario.
Sicurezza
Un workbook su cartella condivisa eredita i permessi della cartella. Access non aggiunge sicurezza al file Excel. Limita l’accesso alla fonte alle persone autorizzate e non salvare copie in percorsi pubblici per comodità.
Se il workbook contiene dati riservati, applica le policy aziendali. Ricorda che un collegamento dipende anche dalle protezioni e dalle etichette del file sorgente.
Strategia di test
Testa il collegamento con il workbook chiuso e aperto, con un account standard, da un secondo PC, dopo un cambio di valore e dopo uno spostamento simulato. Verifica come reagisce l’applicazione quando il file non è disponibile.
Controlla anche query e report, non soltanto il foglio dati. Un link che si apre non garantisce che i join siano ancora validi.
Documentazione
Annota percorso, nome workbook, foglio o intervallo, nome tabella Access e oggetti dipendenti. Se il file viene gestito da un altro reparto, indica anche il responsabile. Questa documentazione rende semplice capire chi deve intervenire quando il link fallisce.
Controlli avanzati prima della distribuzione
Verifica che le intestazioni non cambino tra una versione e l’altra del workbook. Se il reparto proprietario aggiunge una colonna nel mezzo, prova tutte le query dipendenti. Se rinomina un campo, il collegamento può aprirsi ma una query può mostrare un parametro inatteso perché non trova più il nome originale.
Controlla anche formule e celle vuote. Se il workbook usa formule che restituiscono stringa vuota, Access può trattare il risultato diversamente da un vero Null. Nei filtri e nei join questa differenza può cambiare i risultati.
Se una tabella collegata alimenta report periodici, salva una query di verifica che mostri conteggio record, data minima e massima e, se possibile, un totale di controllo. Prima di generare il report, esegui questi controlli e confrontali con la fonte.
Quando cambiare architettura
Il collegamento Excel è eccellente per piccole fonti di riferimento mantenute in un workbook, ma diventa fragile se decine di utenti devono modificare dati, se il file cresce molto o se il processo richiede integrità referenziale e transazioni. In questi scenari valuta un back-end Access separato o SQL Server e lascia Excel come strumento di analisi o scambio.
Access può continuare a essere il front-end anche con SQL Server. In questo modo maschere e report restano familiari agli utenti, mentre i dati condivisi sono gestiti da un motore server più adatto alla concorrenza.
Collegamenti utili su Guide-Pratiche.it
- Come importare dati da Excel in Access
- Come creare una query tra più tabelle in Access
- Come usare la finestra Relazioni in Access
- Tutte le Guide Access
Fonti Microsoft
FAQ
Il collegamento copia i dati in Access?
No. La tabella collegata legge il workbook.
Posso modificare Excel dalla tabella collegata?
No, Microsoft specifica che Excel collegato è di sola lettura in Access.
Se Excel cambia, Access si aggiorna?
I valori modificati nella fonte vengono riflessi; cambi di percorso o struttura possono richiedere relink.
Posso collegare più fogli?
Sì, creando una tabella collegata per ogni foglio o intervallo necessario.
Meglio foglio o intervallo denominato?
Un intervallo stabile rende più chiara la porzione di dati e facilita la manutenzione.
Posso usare il link in query e report?
Sì. È uno degli usi principali del collegamento Excel.
Runtime può usare tabelle Excel collegate?
Sì, se percorso e permessi sono validi. Prepara una procedura di verifica o relink.
Checklist finale
Controlla workbook, foglio, intervallo, intestazioni, tipi, percorso, permessi e numero di record. Apri la tabella, modifica un valore nella fonte e verifica l’aggiornamento. Prova una query e un report. Simula un file mancante e verifica che l’applicazione mostri un errore comprensibile.
Per ambienti multiutente usa percorsi coerenti, documenta il proprietario della fonte e non affidarti a drive letter personali. Se il volume cresce o molti utenti devono modificare dati, valuta una vera fonte database.
Conclusione
Collegare Access a un file Excel è utile quando il workbook deve restare la fonte ufficiale e il database deve leggere i dati aggiornati per query e report. Il collegamento evita copie, ma introduce dipendenze da percorso, struttura e disponibilità del file e mantiene Excel in sola lettura da Access. Con una buona preparazione del foglio, Gestione tabelle collegate, controlli sui percorsi e test in Runtime puoi usare questa integrazione in modo affidabile senza confonderla con una vera importazione.