Importer tout un répertoire !!!!!! est-il possible

10 views
Skip to first unread message

atmus

unread,
May 7, 2003, 7:15:02 AM5/7/03
to
Bonjour,

Y a t'il un moyen pour importer automatiquement tous les
fichiers *.txt d'un répertoire donné dans des nouvelles
tables correspondantes (une table par fichier portant son
nom).

Bien sûr, sans préciser dans le code le nom du fichier et
le nom de la table destinataire (on peut avoir 100
fichiers, dc on peut tout écrire ;);)

Défi

Merci beaucoup

Fab

unread,
May 7, 2003, 7:28:59 AM5/7/03
to
Bonjour
oui avec Dir() et une boucle

Exemple:

monfichier = Dir(MonRépertoire & "*.txt")
Do While monfichier <> ""

monchemin = MonRépertoire & monfichier
DoCmd.TransferText acImportFixed, nomDelaStructere, NomDelaTable, monchemin
(par exemple)
monfichier = Dir

Loop
en espérant t'avoir aider

Fabrice

"atmus" <at...@mixmail.cm> a écrit dans le message de news:
02aa01c31489$e7da62f0$a001...@phx.gbl...

Raymond

unread,
May 7, 2003, 8:12:18 AM5/7/03
to
Bonjour.

Tu peux te créer une fonction de ce type, (attention non testée, bien
vérifier !)

Private Sub Commande2_Click()
Chercher "C:\répertoire", "*.txt", True ' ou false
End Sub

Public Function Chercher(NomDuChemin As String, NomDuFichier As String,
Sous_répertoires As Boolean)
Dim I As Integer
Dim LaTable As String
On Error Resume Next
With FileSearch
.NewSearch
.LookIn = NomDuChemin
.FileName = NomDuFichier
.SearchSubFolders = Sous_répertoires
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
LaTable = Mid(.FoundFiles(I), InStrRev(.FoundFiles(I), "\")
+ 1)
LaTable = Mid(LaTable, 1, InStrRev(LaTable, ".") - 1)
DoCmd.TransferText acImportDelim, , LaTable, .FoundFiles(I),
True
Next I
End If
End With
End Function

Tu peux aussi utiliser Dir qui te ramènera le nom du fichier seulement, mais
Dir ne peut pas ramener en même temps tous les sous-répertoires du chemin
principal et dans ton cas avec une centaine de fichiers, peut-être
seront-ils dans plusieurs sous-répertoires . Dans Dir il faut aussi
connaître le chemin exact.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.

"atmus" <at...@mixmail.cm> a écrit dans le message de
news:02aa01c31489$e7da62f0$a001...@phx.gbl...

atmus

unread,
May 7, 2003, 10:03:44 AM5/7/03
to
Salut,

merci Fab et Raymond

mais pour la fonction qui tu m'a donné, raymond, j'arrive
à l'exécuter.

J'ai créé un module où j'ai inséré la fonction et j'ai
créé une macro pour appeler le code. Mais apparemment, il
faut remplir :
CHERCHER
(«NomDuChemin»; «NomDuFichier»; «Sous_répertoires») (ce
qui est entre guillemets). Or moi je n'ai pas de
nomdufichier exact ni de sous répertoirE

A moins que j'ai mal procédé pour importer les fichiers.

Si c'est pas beaucoup, tu peux me décrire comment je dois
procéder, je suis hypernul en fonctions et leurs
utilisations

Désolé pour dérangement

>-----Message d'origine-----

>.
>

Raymond

unread,
May 7, 2003, 10:29:22 AM5/7/03
to
RE.

Qu'à cela ne tienne:

N'écoutes pas ce qu'on te dit....... ne mets pas les ; mais des ,

Chercher ("c:\", "*.txt", "false")

remplaces le c:\ par ton répertoire dans lequel se trouvent les fichiers.
false veut dire pas de sous-répertoires.
*.txt veut dire tous les fichiers avec extension txt.

j'ai testé ça marche.


--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.

"atmus" <at...@mixmail.com> a écrit dans le message de
news:035601c314a1$78e883a0$2f01...@phx.gbl...

Reply all
Reply to author
Forward
0 new messages