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

Access Discussion :

Importation avec la fonction DIR [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Importation avec la fonction DIR
    Bonjour à tous,

    je fais une importation automatique avec un code VBA ACESS à partir d'un répertoire.

    L'importation marche bien, mais je rencontre un problème, y'a des jours au lieu d'avoir un seul fichier sur le répertoire,j'ai deux fichiers avec le même nom et la même date.

    Par exemple je peut avoir un fichier à 00h 30 et un autre à 21h.

    TACHES_GE_E0D441_D150417_T0008.CSV c'est le fichier enregistrer à 00h08 mn (T0008)

    TACHES_GE_E0D441_D150417_T2101.CSV c'est le fichier enregistré à 21 h 01 (T2101)


    mon objet d'importer chaque jour le dernier fichier de la vielle pour lancer mes requêtes.

    Ci-dessous mon code d'importation avec la fonction Dir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D" & Format(DateAdd("d", -1, Date), "yymmdd") & "_*.CSV")
    L'importation marche bien avec un seul ou 2 fichiers le même jour, le problème c'est quand il ya a deux fichiers, au lieu d'importer le dernier fichier enregistré, il importe le premier fichier.
    Quelle instruction je peux rajouter avec code pour importer le dernier fichier de la vielle au cas où il y a deux fichiers enregistrés le même jour?

    Merci par avance de vos réponses.

    Cordialement

  2. #2
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Importation automatique sous ACCESS
    Bonjour à tous,

    Je reformule ma demande, ce que je veux c'est juste l'importation du dernier fichier enregistré sur le répertoire quelque soit la date et l'heure.

    L'importation doit se faire tous les matins à 7h ( les jours ouvrables).
    Tous les fichiers commencent par le nom: TACHES_GE_E0D441.........suivie de la date et l'heure d'enregistrement

    Exemple: TACHES_GE_E0D441_D150428_T0312.CSV

    D150428= date du 28/04/2015

    T0312:03h12 mn

    Ci-dessous mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D" & Format(DateAdd("d", -1, Date), "yymmdd") & "_*.CSV")
    Merci par avance.

  3. #3
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    En fait, tu peux faire une boucle et rappeler la fonction Dir() sans autre argument, elle te renverra les autres fichiers qui correspondent a ta recherche jusqu'à ne plus rien te renvoyer.
    Tu peux stocker ces nom de fichier dans un tableau et les comparer par la suite afin de ,ne garder le plus grand, ou alors les comparer a chaque recherche et de garder que le plus grand :
    Du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim StrFichier As String
    Dim OldStrFichier As String
        StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D" & Format(DateAdd("d", -1, Date), "yymmdd") & "_*.CSV")
        While StrFichier <> ""
            If OldStrFichier < StrFichier Then OldStrFichier = StrFichier
            StrFichier = Dir()
        Wend
        MsgBox OldStrFichier
    @+


    Pensez au tag

  4. #4
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Importation automatique sous ACCESS
    Bonjour ,

    Merci Didier L pour la réponse, ça résout bien le problème quand il y a deux fichiers.

    Mais le problème majeur c'est comment lui dire toujours de récupérer le dernier fichier qui est enregistré sur le répertoire, par exemple les lundi matin pour récupérer les fichiers du vendredi ou au retours des jours fériés.
    Sur le répertoire il peut y 'arrivé qu'il ai pas de fichier le jour même et le fichier sera enregistré que le lendemain sur le répertoire.

    Je veux quelque soit la date il va récupérer le dernier fichier TACHES_GE_E0D441........ enregistré sur le répertoire.

    J'ai essayé avec ce code en jouant sur la dernière date de modification ou de création , mais me renvoie des fichiers de janviers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D" & Format(Date, "yymmdd") & "_*.CSV", datelastmodified)
    Merci encor par avance.

  5. #5
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Heureusement tes fichiers sont formatés avec la Date et l'heure avec l'année en premier, le mois et le jour.
    Donc le dernier fichier enregistré sera obligatoirement toujours le plus grand

    Donc a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D" & Format(Date, "yymmdd") & "_*.CSV", datelastmodified)
    Utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     StrFichier = Dir(CHEMIN_FICHIER & "\TACHES_GE_I4D212_D*.CSV")
    Sans date, ainsi tu réoccuperas toujours le dernier fichier enregistré
    @+


    Pensez au tag

  6. #6
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Importation automatique sous ACCESS
    Re Bonjour Didier L

    Oui parfaitement ça marche bien, génial.

    Un grand merci pour cet aide, je viens d'apprendre quelque chose qui va beaucoup m'aider dans mon projet.

    Cordialement

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

Discussions similaires

  1. [XL-2007] Problème avec la fonction Dir
    Par nanousik dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/06/2013, 14h30
  2. Réponses: 1
    Dernier message: 25/02/2009, 09h44
  3. Problème avec la fonction Dir
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/10/2008, 04h15
  4. Problem avec la fonction DIR
    Par emsi-moteur dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/03/2007, 16h46
  5. pb avec fonction dir
    Par terminatorsk8 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/08/2006, 16h23

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