Come importare tutti i file all'interno di una cartella nella tua Access Table

Condividi ora:

Dati, dati, dati: senza di essi un database sarebbe praticamente inutile. Non sorprende quindi che una delle domande più frequenti quando si tratta di importare dati nelle tabelle di Access sia: come posso semplificarmi la vita quando devo importare regolarmente molti (e moltissimi!) file? Trattandosi di un'operazione così comune, esistono ovviamente diversi modi per risolvere il problema, ma qui ne esamineremo uno in particolare, a mio parere il più semplice, soprattutto se lo fate regolarmente o addirittura con cadenza programmata. Un po' di pianificazione (e intendo proprio un po'!) e un pizzico di magia VBA e sarete pronti a partire: continuate a leggere per iniziare...

Importazione di tutti i file Excel in una cartella

Importa file Excel per accederePer questo articolo, esamineremo l'importazione di un numero di file Excel all'interno di una determinata cartella, ma potresti importare altrettanto facilmente file csv e così via: discuteremo a breve su come modificare il codice per gestire i file csv.

Innanzitutto, definiamo cosa vogliamo che il codice faccia:

"Vogliamo importare tutti i file da una data cartella in una tabella esistente - vogliamo anche specificare se i file hanno o meno una riga di intestazione"

Sembra abbastanza semplice, quindi diamo un'occhiata al codice per farlo:

Sub ImportfromPath(path As String, intoTable As String, hasHeader As Boolean)

Dim fileName As String

'Loop through the folder & import each file
fileName = Dir(path & "\*.xls")
While fileName <> ""
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, intoTable, path & fileName, hasHeader
   'check whether there are any more files to import
    fileName = Dir()
Wend

End Sub

Controllo dei problemi...

Corruzione del database di accessoPrima di entrare nei dettagli su come funziona questo codice, è importante notare che non vi è alcun controllo degli errori incluso nel codice sopra: questo è deliberato in modo che il codice sia facilmente leggibile, ma ti consiglio vivamente di aggiungere il codice di gestione degli errori al tuo database in modo da mantenere le possibilità di Accedere alla corruzione del database al minimo!

OK, prima le cose importanti. Per mantenere il codice il più possibile utilizzabile in circostanze diverse, chiediamo il nome del percorso (dove sono archiviati i file), il nome della tabella in cui vuoi importare questi file e se i file in questa cartella hanno tutti un intestazione o meno (ovvero i nomi dei campi vengono visualizzati nella prima riga del foglio di calcolo).

Noterai che la parte di codice che cerca i file – Dir(path & “\*.xls”) – aggiunge un carattere jolly e un'estensione di file al percorso fornito. Lo menziono perché sarebbe molto facile modificare il codice se, ad esempio, volessi importare solo file che corrispondono a una particolare convenzione di denominazione (ad esempio tutti i file che hanno "Gennaio" o "2017" come parte del nome del file ). Potresti, se lo desideri, persino aggiungere quel filtro come parametro alla chiamata alla subroutine.

Ad ogni modo, se un file corrisponde ai criteri dati (qualsiasi file ".xls" nella cartella utilizzando in questo caso), tenta immediatamente di importare quel file utilizzando il comando TransferSpreadsheet.

Dove modificare il codice in base alle proprie esigenze...

È a questo punto che puoi modificare il codice in modo che invece di importare un foglio di calcolo, importi file csv (usando il comando "TransferText") ecc.

Il codice quindi esegue un ciclo finché non ci sono altri file da importare in quella cartella.

È un piccolo pezzo di codice, ma che ti ritroverai a usare più e più volte, ne sono sicuro!

Introduzione dell'autore:

Mitchell Pond è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparare la corruzione SQL ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.