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 :

Importation des fichiers les plus recents


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Importation des fichiers les plus recents
    bonjour
    voila j'ai une base acces qui toutes les nuits va importer des txt situés dans un dossier.

    Comment faire pour que la base importe uniquement les txt du jour?
    sachant que les txt sont de type nommachine_date.txt

    Voila actuellement mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function import()
    DoCmd.TransferText acImportDelim, "importspec", "dump", "C:\Program Files\Resource Kit\ISTL638NT5_02022006.txt"
    End Function
    Il est vraiment primaire. je suis obligé de donner le nom exact du fichier. Il faudrait donc qu'access importe TOUS les txt du jour.

    merci

  2. #2
    Membre du Club

    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 54
    Points
    54
    Par défaut
    Salut,

    Voici un petit bout de code qui recherche le dernier fichier txt créé dans un répertoire, tu n'aura qu'à le modifier un petit peu pour faire un cont^rôle sur la date du jour

    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
     
     
     
    Function TXT_FindLastFile_And_Copy() As Boolean
     
     
    Dim NameLastFile As String
    Dim DateLastFile As Date
    Dim DateTemp As Date
    Dim NomFichierText As String
     
    Dim InfoFile As New Rs_FileScriptingObject
    Dim i As Long
     
     
     
    ' recherche du dernier fichier txt créer
    With Application.FileSearch
     
        .NewSearch
        .LookIn = StrCheminDeRecherche
        .SearchSubFolders = False
     
        .FileName = "*.txt"
     
        If .Execute() > 0 Then
     
                For i = 1 To .FoundFiles.Count
                    DateTemp = InfoFile.FileDateFileCreated(.FoundFiles(i))
     
                    If DateLastFile < DateTemp Then
                        NameLastFile = .FoundFiles(i)
                        DateLastFile = DateTemp
                    End If
     
                Next i
     
        Else
            ' MESSAGE D'ERREUR
     
        End If
     
    End With
     
    Set InfoFile = Nothing
     
     
    End Function

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    access me met l'erreur suivante:

    erreur de compilation type defini par l'utilisateur non défini pour InfoFile As New Rs_FileScriptingObject

    Désolé je suis vraiment débutant en algo je ne comprend pas tout ton script. Où est ce que je dois entrer le chemin du dossier où il doit chercher les fichiers?

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    tu peux aussi faire une boucle sur un Dir("*_02022006.txt")

    exemple de boucle dans la FAQ :

    http://access.developpez.com/faq/?pa...ep#contenu_rep

  5. #5
    Membre du Club

    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 54
    Points
    54
    Par défaut
    Autant pour moi, je suis allé un peu vite en copiant le code

    Le voici modifié :
    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
     
     
     
    Function Txt_FindLastFile_And_Copy() As Boolean
     
     
    Dim NameLastFile As String
    Dim DateLastFile As Date
    Dim DateTemp As Date
    Dim NomFichierText As String
     
    Dim InfoFile As New FileSystemObject
    Dim i As Long
    Dim StrCheminDeRecherche As String
     
     
    ' recherche du dernier fichier txt créer
    With Application.FileSearch
     
        .NewSearch
        .LookIn = StrCheminDeRecherche
        .SearchSubFolders = False
     
        .Filename = "*.txt"
     
        If .Execute() > 0 Then
     
                For i = 1 To .FoundFiles.Count
                    DateTemp = InfoFile.GetFile(.FoundFiles(i)).DateCreated
     
                    If DateLastFile < DateTemp Then
                        NameLastFile = .FoundFiles(i)
                        DateLastFile = DateTemp
                    End If
     
                Next i
        Else
            ' MESSAGE D'ERREUR
     
        End If
     
    End With
     
    Set InfoFile = Nothing
     
     
     
    End Function
    De plus, il faut que la bibli ScriptingRuntime soit coché (Dans Outil/Référence)

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    donc j'ai réussi à importer le dernier fichier. Seulement voila c'est seulement le dernier. et je voudrai tous les derniers (les fichiers du jours donc)



    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
    Function Txt_FindLastFile_And_Copy() As Boolean
     
     
    Dim NameLastFile As String
    Dim DateLastFile As Date
    Dim DateTemp As Date
    Dim NomFichierText As String
     
    Dim InfoFile As New FileSystemObject
    Dim i As Long
    Dim StrCheminDeRecherche As String
     
     
    ' recherche du dernier fichier txt créer
    With Application.FileSearch
     
        .NewSearch
        .LookIn = "c:\program files\resource kit\"
        .SearchSubFolders = False
     
        .Filename = "*.txt"
     
        If .Execute() > 0 Then
     
                For i = 1 To .FoundFiles.Count
                    DateTemp = InfoFile.GetFile(.FoundFiles(i)).DateCreated
     
                    If DateLastFile < DateTemp Then
                        NameLastFile = .FoundFiles(i)
                        DateLastFile = DateTemp
                    End If
     
                Next i
        Else
            ' MESSAGE D'ERREUR
     
        End If
     
    End With
     
    Set InfoFile = Nothing
     
     
     
     
     
     
    DoCmd.TransferText acImportDelim, "importspec", "dump", NameLastFile
    donc ça c'est mon code. Il faudrait que j'integre la fonction dir comme dit cafeine mais la jai du mal

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    je viens de trouver la fonction date created. L'idée serait d'importer les fichiers ayant comme date de création la date du jour mais je ne comprend pas comment l'utiliser

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    J'ai un peu le même soucis pour importer le dernier fichier excel.
    J'ai donc repris le code et remplacé txt par xls. Jusque là, facile

    Puis je clique sur executer la fonction et là j'ai une erreur de compil sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim InfoFile As New FileSystemObject
    il connaitpas le FileSystemObject
    J'ai regardé après la bibliothèque ScriptingRuntime et je la trouve pas....

    Comment puis-je faire ?

    Je suis sur un Access97

    Merci de votre aide.

    PS : J'ai retrouvé cette bibliothèque, elle s'appelle Microsoft ScriptingRuntime

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    ça y'est, j'ai ma fonction et toutes mes bibliothèques, par contre j'ai un problème que ne ne comprend pas.

    Lors de l'execution de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .LookIn = cheminFichier()
    Si je donne le chemin exact du dossier sur lequel je dois effectuer la recherche, j'ai une erreur. En revanche, si je remonte dans le dossier parent, cela fonctionne parfaitement. Dans le cas présent, ce n'est pas très dérangeant mais j'aimerai comprendre....

    J'ai juste modifié un peu la fonction pour qu'elle me donne le nom du fichier en valeur de retour, voici ce qu'elle est devenue :

    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
    Function Xls_FindLastFile_And_Copy() As String
     
     
    Dim NameLastFile As String
    Dim DateLastFile As Date
    Dim DateTemp As Date
    Dim NomFichierText As String
     
    Dim InfoFile As New FileSystemObject
    Dim i As Long
    Dim StrCheminDeRecherche As String
     
    ' recherche du dernier fichier xls créé
    With Application.FileSearch
     
        .NewSearch
        .LookIn = cheminFichier()
     
        .Filename = "*.xls"
     
        .SearchSubFolders = True
     
     
        If .Execute() > 0 Then
     
                For i = 1 To .FoundFiles.Count
                    DateTemp = InfoFile.GetFile(.FoundFiles(i)).DateCreated
     
                    If DateLastFile < DateTemp Then
                        NameLastFile = .FoundFiles(i)
                        DateLastFile = DateTemp
                    End If
     
                Next i
        Else
            'Message d'erreur
            MsgBox "Erreur de recherche"
     
        End If
     
    End With
     
    'MsgBox "Dernier fichier : " + NameLastFile
    Xls_FindLastFile_And_Copy = NameLastFile
     
    Set InfoFile = Nothing
     
     
    End Function

Discussions similaires

  1. Extraction des fichiers les plus récents d'un dossier
    Par aston01390 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/04/2015, 10h46
  2. Réponses: 1
    Dernier message: 30/01/2015, 16h14
  3. Réponses: 37
    Dernier message: 12/08/2014, 23h25
  4. Faire un top 10 des sites les plus visité [fichier csv]
    Par nioko dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/12/2013, 15h32
  5. Boucler sur les fichiers Word les plus recents
    Par jérémyp8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/06/2013, 16h48

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