Comment importer tous les fichiers d'un dossier dans votre table d'accès

Partage maintenant:

Données, données, données - sans cela, une base de données serait plutôt inutile. Il n'est donc pas surprenant que l'un des most Les questions fréquemment posées lorsqu'il s'agit d'obtenir ces données dans vos tables Access sont les suivantes : comment puis-je me simplifier la vie lorsque je dois régulièrement importer des lots (et des lots !) de fichiers ? Comme il s'agit d'une tâche si courante, il existe évidemment plusieurs façons de dépecer ce chat en particulier, mais ici, nous allons en examiner une seule - à mon avis, la plus simple - surtout si vous le faites régulièrement, ou même délai prévu. Un peu de planification (et je veux dire un peu !) Et un peu de magie VBA et vous serez prêt à partir - lisez la suite pour obtenir started…

Importation de tous les fichiers Excel dans un dossier

Importer un fichier Excel pour accéderPour cet article, nous allons examiner l'importation d'un certain nombre de fichiers Excel dans un dossier donné, mais vous pouvez tout aussi facilement importer des fichiers csv, etc. - nous verrons bientôt comment modifier le code pour gérer les fichiers csv.

Tout d'abord, définissons ce que nous voulons que le code fasse :

"Nous voulons importer tous les fichiers d'un dossier donné dans une table existante - nous voulons également spécifier si les fichiers ont une ligne d'en-tête ou non"

Cela semble assez simple, alors regardons le code pour faire ceci :

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

Vérification des problèmes…

Corruption de la base de données d'accèsAvant d'entrer dans les détails du fonctionnement de ce code, il est important de noter qu'il n'y a pas de vérification d'erreur incluse dans le code ci-dessus - c'est délibéré afin que le code reste facilement lisible, mais je vous suggère fortement d'ajouter un code de gestion des erreurs à votre base de données afin que vous gardiez les chances de Corruption de la base de données d'accès au minimum !

OK - tout d'abord. Pour garder le code aussi utilisable dans différentes circonstances que possible, nous demandons le nom du chemin (où les fichiers sont stockés), le nom de la table dans laquelle vous souhaitez importer ces fichiers et si les fichiers de ce dossier ont tous un en-tête ou non (c'est-à-dire les noms de champs apparaissent-ils sur la première ligne de la feuille de calcul).

Vous remarquerez que la partie du code qui recherche les fichiers - Dir(path & "\*.xls") - ajoute un caractère générique et une extension de fichier au chemin fourni. Je le mentionne car il serait très facile de modifier le code si, par exemple, vous vouliez importer uniquement des fichiers qui correspondent à une convention de dénomination particulière (par exemple, tous les fichiers qui ont "janvier" ou "2017" dans le nom du fichier ). Vous pourriez, si vous le vouliez, même ajouter ce filtre comme paramètre à l'appel de sous-programme.

Quoi qu'il en soit, si un fichier correspond aux critères donnés (tout fichier ".xls" dans le dossier utilisant le dans ce cas), il tente immédiatement d'importer ce fichier à l'aide de la commande TransferSpreadsheet.

Où changer le code en fonction de vos besoins…

C'est à ce stade que vous pouvez modifier le code afin qu'au lieu d'importer une feuille de calcul, il importe des fichiers csv (à l'aide de la commande "TransferText"), etc.

Le code boucle ensuite jusqu'à ce qu'il n'y ait plus de fichiers à importer dans ce dossier.

C'est un petit morceau de code, mais que vous utiliserez encore et encore, j'en suis sûr !

Introduction de l'auteur:

Mitchell Pond est un expert en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris réparer la corruption SQL et des produits logiciels de récupération Excel. Pour plus d'informations, visitez www.datanumen.com

Partage maintenant:

Les commentaires sont fermés.