Il va falloire creer la table à la main, et ensuite son alimentation se fera de façon automatique, à chaque nouveau fichier.
dans l'ordre, il faut :
-
- d'abord importer ton 1er fichier sous access (Manip décrite ci-dessous : dans le point 6 : choisis création d'une nouvelle table)
-
- ensuite, creer une "spécification d'import" (= un modèle sur la façon de faire l'import de ce type de fichiers, qu'Access utilisera ensuite pour tous les autres fichiers). Pour celà, il va falloire importer un 2e fichier : reprend la Manip ci-dessous avec cette fois :
- dans le point 6 : tu vas l'ajouter a la table que tu viens de créér avec le 1er fichier
- au point 9 : en bas à droite selectionner "Avancé" : vérifier les noms et formats des champs + "enregistrer sous" : donner un nom à la spécification d'import.
Manip d'import :
dans l'onglet "table" d'access :
1 - faire "Nouveau" : une boite s'ouvre
2 - selectionner "importer la table" + Ok.
3 - parcourir et selectionner le fichier à importer
4 - choisir l'onglet (si import d'un fichier excel) et faire suivant
5 - cocher si l'on veut que la 1ere ligne contienne les entêtes de colonnes ( + suivant)
6 - préciser si l'on crée une nouvelle table ou si l'on veut que tes données s'ajoutent à une table existant (dans ce cas, attention aux formats des champs !) (+suivant)
7 - choix du format des champs si import d'un fichier texte (+ suivant)
8 - indiquer si l'on veut une clé primaire ou pas (+suivant)
9 - donner le nom de la table qui sera créée (+ Terminer)
-
- enfin voici le code executant l'import automatique des fichiers suivants. (je ne connais pas l'étendu de tes connaissances sous access, fais-moi savoir si tu ne sais pas où coller ce code, ou comment le lancer)
ce code va chercher dans un dossier précis tous les fichiers ".txt", et les importe un par un dans ta table :
Function Search()
Dim i As Integer
Dim j
Application.FileSearch.LookIn = "C:\Chemin\Dossier\"
Application.FileSearch.FileName = "*.txt"
If Application.FileSearch.Execute > 0 Then
For i = 1 To Application.FileSearch.FoundFiles.Count
j = Importer(Application.FileSearch.FoundFiles(i))
Next i
Else
MsgBox "Aucun fichier n'a été trouvé !"
End If
Kill Application.FileSearch.FoundFiles(i) ' cette ligne supprime le fichier, mais tu préfèrera peut-être le déplacer dans un dossier archive...
End Function
Public Function Importer(Texte As String)
DoCmd.TransferText acImportDelim, "Nom_specification_import", "Nom_table_import", Texte, True, ""
End Function