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 :

Liste déroulante affichant les fichiers d'un répertoire du disque


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Points : 45
    Points
    45
    Par défaut Liste déroulante affichant les fichiers d'un répertoire du disque
    Bonjour,
    Voici un sujet déjà cité mais que je ne parviens pas à résoudre.
    Je souhaiterais qu'une liste déroulante (fichiers) d'un formulaire affiche les fichiers contenu dans un répertoire spécifié dans un autre champ (chemin) du formulaire.
    Ex : chemin = c:\mes documents\rapports. Fichier : à choisir dans la liste déroulante.
    Le fichier une fois choisi, je voudrais pouvoir l'ouvrir à partir de mon formulaire (à l'aide d'un bouton). Les fichiers sont de type xls, xlsx, xlsm, doc, docx, pdf, jpg,...).
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    La fenêtre Ouvrir ne te convient pas ? http://access.developpez.com/faq/?pa...#AffBoitDialog

    Sinon il te faut utiliser la fonction Dir() pour lister tes fichiers.

    Voici un exemple à adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim myfile As String, listefichier   As String
    myfile = Dir("c:\")
    While Not Len(myfile) = 0
       listefichier = myfile & ";" & listefichier
       myfile = Dir("")
    Wend
    me.maliste.rowsource = listefichier
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Points : 45
    Points
    45
    Par défaut
    Bien merci de ta réponse.

    J'ai utilisé la fenêtre ouvrir qui effectivement est ok.
    Il me reste à résoudre ces 2 points :

    1. Récupérer le nom du fichier sélectionné et le copier dans le champ "Nom de fichier"
    2. Mettre le code sur le bouton qui ouvrira le fichier dont le nom sera repris dans le champ "Nom de fichier" et dont le chemin sera repris dans le champ "Chemin".

    Est-ce possible et est-il possible d'ouvrir tous les types de fichier?

    Merci de ton aide.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    1. la fonction te renvoi le chemin complet et le nom que tu as choisi.
    2. Pour l'appel c'est classique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vchemin =  OuvrirUnFichier(Application.hwndAccessApp, "Parcourir", 1, "Tous les fichiers", "*.*")
    Ici on visualise tous les fichiers.

    Pour le découpage.

    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
    Public Function fFichierExt(strCheminFichier As String, strType As String) As String
    ' Retourne l'un des éléments suivant le chemin/fichier passé en référence
    ' strCheminFichier contient le chemin et fichier
    ' strType =
    '    F renvoi le nom du fichier et son extension
    '    E renvoi l'extension du fichier
    '    C renvoi le chemin sans le nom ni l'extension
    '    U renvoi l'unité
      On Error GoTo ErrSub
      Select Case strType
        Case Is = "F"    ' renvoi le fichier
          fFichierExt = Right(strCheminFichier, Len(strCheminFichier) - InStrRev(strCheminFichier, "\"))
      Case Is = "E"    ' renvoi l'extension
          fFichierExt = Right(strCheminFichier, Len(strCheminFichier) - InStrRev(strCheminFichier, "."))
      Case Is = "C"    ' renvoi le chemin
          fFichierExt = Left(strCheminFichier, InStrRev(strCheminFichier, "\"))
      Case Is = "U"    ' l'unité
         fFichierExt = Left(strCheminFichier, InStr(strCheminFichier, "\"))
     End Select
     
     Exit Function
     
    ErrSub:
    Resume Next
    End Function
    Y a plus qu'à !
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Points : 45
    Points
    45
    Par défaut
    Fabrice, merci de ton aide.
    Ca vole un peu haut pour moi...
    Dans mon cas, je choisi de sélectionner un fichier depuis un répertoire prédéterminé.
    Je ne comprends pas ce que je dois faire pour :
    1. récupérer le "nom+ext" du fichier que je choisi dans l'arborescence et qui apparaît dans la fenêtre finale,
    2. copier ce "nom+ext" dans le champ "nom de fichier" de mon formulaire.

    Par contre je suis parvenu à ouvrir le fichier à l'aide d'un bouton lorsque son nom est mentionné dans le champs "nom de fichier".

    Peux-tu avoir l'amabilité de m'indiquer le code à reprendre pour effectuer les points 1 et 2 ci-dessus et s'il faut le reprendre obligatoirement sur l'évènement d'un bouton.
    Encore bien merci de ton aide précieuse.
    Guy.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    1)
    Lorque tu appelles cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OuvrirUnFichier(Application.hwndAccessApp, "Parcourir", 1, "Tous les fichiers", "*.*")
    Elle te renvoie le chemin et le nom+extension du fichier sélectionné.

    2)
    Pour faire une affectation dans un controle de zone texte tu dois utiliser ceci

    3)
    Pour extraire le nom du fichier et l'extension tu dois faire appel à la fonction que je t'ai posté. Mets la dans le code du formulaire ou dans un module.

    4)
    Pour que ça fonctionne !

    Dans l'événement Sur clic d'un bouton de commande

    Crée une variable pour stocker le nom du fichier
    puis renvoi le fichier choisi
    supprime le chemin sans le chemin.
    et affecte le au controle de zone texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim monfichier as string
    monfichier=OuvrirUnFichier(Application.hwndAccessApp, "Parcourir", 1, "Tous les fichiers", "*.*")
    me.nomducontrole = fFichierExt(monfichier,"FE")
    Et oui il faut un déclencheur (un bouton ou autre) c'est le principe de la programmation événementielle.

    Lit le tuto sur les événements et les appels formulaires. Tu seras plus à l'aise.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. [Batch] Liste les fichiers d'un répertoire mais n'affiche pas l'extension
    Par thorgal1612 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 24/04/2013, 13h47
  2. Réponses: 2
    Dernier message: 03/11/2009, 10h12
  3. Réponses: 11
    Dernier message: 17/08/2009, 13h22
  4. Réponses: 23
    Dernier message: 23/05/2006, 16h52
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 15h53

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