IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Recupere les nom de fichiers dans un dossier


Sujet :

VBA Access

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Recupere les nom de fichiers dans un dossier
    Bonjour,
    Je Souhaiterait savoir si il est possible de recuperai tous les noms de fichier se trouvant dans un dossier pour les mettre dans les champs d'une table.
    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701

  3. #3
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    J'ai un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub Commande0_Click(sChemin As String, Coll As Collection, Recursif As Boolean)
    Dim sChemin As String
    Dim FSO As Scripting.FileSystemObject
    Dim Dossier As Scripting.Folder
    Dim SousDossier As Scripting.Folder
    Dim Fichier As Scripting.File
     sChemin = "e:\XXXX"
     
        Set FSO = New Scripting.FileSystemObject
        Set Dossier = FSO.GetFolder(sChemin)
     
        For Each Fichier In Dossier.Files
            Coll.Add Fichier.Path, Fichier.Path
        Next Fichier
     
        If Recursif Then
            For Each SousDossier In Dossier.SubFolders
                ListeFichiers SousDossier.Path, Coll, True
            Next SousDossier
        End If
     
        Set FSO = Nothing
    End Sub
    Par contre je n'arrive toujours pas les inserer dans ma table

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Tu es pas le seul à avoir un bout de code.
    Celui-ci est puisé chez Jessy Sempère :

    Une table : tbl_Destination
    Un champ : ChampDestination

    Un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Public Function FileExistDir(strDir As String, _
        strTable As String, strField As String)
     
    Dim intFile As Integer
    Dim strFile As String
     
     
    intFile = 0: strFile = ""
     
     
    With Application.FileSearch
        .LookIn = strDir: .FileName = "*.*"
        If .Execute > 0 Then
            For intFile = 1 To .FoundFiles.Count
                strFile = .FoundFiles(intFile)
                strFile = Right(strFile, Len(strFile) - (Len(strDir) + 1))
                CurrentDb.Execute "INSERT INTO [" & strTable & "] " _
                    & "([" & strField & "])" _
                    & "SELECT """ & strFile & """ ;"
             Next
        End If
    End With
     
    End Function
    Un bouton de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cmdChargeTbl_Click()
    'FileExistDir (strDir, strTable, strField)
    Call FileExistDir("C:\Access", "tbl_Destination", "ChampDestination")
    End Sub
    Cordialement.

  5. #5
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Excelent merci

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Points : 188
    Points
    188
    Par défaut
    Salut à tous,

    J'ai retouché le code proposé pour avoir plus d'infos (path, date de création, modif, acces)

    en suivant les conseils trouvés ici http://access.developpez.com/faq/?page=SQL#DiffRstSQL

    c'est à dire en utilisant DAO.Recordset plutot que des commandes SQL

    ce qui permet
    1°) une écriture plus facile en VBA que si on utlise la syntaxe SQL qui nécessite beaucoup de """".
    2°) une meilleure rapidité selon Caféine.

    Par contre, j'ai l'impression que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.FileSearch.FileName = "*.*"
    ne fonctionne pas sous Access97 SR2 ????


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Public Function FileExistDir(strDir As String, strPattern As String, strTable As String, strField As String)
    ' 18/03/08 - récupération des noms de fichier d'un répertoire
    ' utilise Application.FileSearch pour parcourir le répertoire
    ' FSO pour trouver les informations du fichier (path, dates..etc.)
    ' DAO.recordset pour stocker dans la table T (plus rapide que le SQL INSERT)
    ' le dernier paramètre ne sert à rien...
    '
    Dim intFile As Integer
    Dim strFile As String
    Dim rst As DAO.Recordset
    Dim fso As FileSystemObject, f As File
    'recordset
    Set rst = CurrentDb.OpenRecordset(strTable)
    ' intialisation des variables
     intFile = 0: strFile = ""
     
    With Application.FileSearch
       ' .LookIn = strDir: .FileName = strPattern
             .LookIn = strDir
          '   .FileName = "*.*"  'le pattern ne fonctionne pas en Access97 ??? il ne trouve que les .mdb ???
        If .Execute > 0 Then
            For intFile = 1 To .FoundFiles.Count
                strFile = .FoundFiles(intFile)
     
                ' fso
                Set fso = New FileSystemObject
                On Error GoTo fin
                Set f = fso.GetFile(strFile)
            '    MsgBox "chemin" & f.Path
            '    MsgBox "Crée le : " & f.DateCreated
            '    MsgBox "Modifié le : " & f.DateLastModified
            '    MsgBox "Accédé le : " & f.DateLastAccessed
            '   Set f = Nothing
            '    MsgBox strFile
            ' ajout dans le recordset
                rst.AddNew
                rst!NomFichier = Right(strFile, Len(strFile) - (Len(strDir) + 1))
                rst!CHEMIN = f.Path
    '           rst!DateCreation = Format(f.DateCreated, "dd/mm/yyyy")
                rst!DateCreation = f.DateCreated
                rst!datemodification = f.DateLastModified
                rst!dateacces = f.DateLastAccessed
                rst.Update
             Next
        End If
    End With
    'libération
    fin:
    Set fso = Nothing
    rst.Close
    Set rst = Nothing
    End Function
    bien cordialement,

    fevec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Recuperer des noms de fichiers dans un dossier
    Par flo31100 dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 24/04/2013, 14h12
  2. Réponses: 2
    Dernier message: 03/09/2008, 17h14
  3. Rechercher les nom de fichier dans un dossier
    Par Didibzh dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2007, 11h41
  4. Ecrire les noms des fichiers dans une colonne
    Par REGIMBAL dans le forum Access
    Réponses: 1
    Dernier message: 20/04/2006, 11h29
  5. stocker les nom de fichiers dans une base
    Par Corben dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2006, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo