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 :

comment choisir un dossier


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut comment choisir un dossier
    Bonjour,
    Est-il possible d'attribuer à une variable le chemin d'accès à un dossier, comme on peut le faire sous windows avec "parcourir" ?
    par exemple attribuer à la variable "acces" le texte : "C:\charente\propriétaires"

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 661
    Points : 34 365
    Points
    34 365
    Par défaut
    bonjour, oui c'est faisable, mais que veux-tu faire exactement ?
    mettre "C:\MonSuperDossierAMoi" dans une variable rep de type string ?
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep = "C:\MonSuperDossierAMoi"
    ou alors tu passes par un explorateur qui te retourne le dossier directement ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    je veux passer par un explorateur

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 661
    Points : 34 365
    Points
    34 365
    Par défaut
    recherche getopenfilename sur le forum, il y a deja de nombreux exemples.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    Tiens je suis en ce moment sur ce sujet moi aussi ,

    regarde dans la faq ici : Comment ouvrir une fenêtre de sélection de répertoire ?

    et mon projet se rapproche du tiens le fil de ma discussion : Selection d'un dossier et récupration du chemin

    A plus

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    il faut mettre tout ça (je suis sous access 2002)?

    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
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _ 
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type

    La fonction suivante ouvre la fenêtre de sélection de répertoire standard de Windows et renvoie le chemin du répertoire
    sélectionné. Les paramètres attendus sont le titre à afficher et l'identifiant de la fenêtre parente.
    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 SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BrowseInfo
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    en fait la commande "SelectFolder" n'est pas reconnue. Je n'ai rien vu dans l'aide.
    (Je n'y connais pas grand chose)
    merci

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    Cette discussion fait presque un double post , mais je vais récapituler les codes.

    1- tu crée un module de code ; dans ce module tu colle cela ;
    la première partie ce sont les déclarations , la seconde la focntion souhaité :
    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
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Const BIF_NEWDIALOGSTYLE As Long = &H40
     
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _ 
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
     
    Public Function SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BrowseInfo
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_NEWDIALOGSTYLE
     
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function
    2-1Ensuite pour appeler cette fonction tu peux le faire d'un formulaire par ex , en créant un bouton , et en glissant ce code sur clic :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande0_Click()
    Dim Msg, Style, Title, Resultat
     
    rep = SelectFolder("Sélectionnez un répertoire :", Me.Hwnd)
     
    Msg = "chemin : " & rep & "  ."
    Style = vbOKOnly + vbInformation
    Title = "Voici le chemin"
    Resultat = MsgBox(Msg, Style, Title)
    End Sub
    2-2 ou d'un autre module de code , ou par exemple a la suite de ce que tu a copier dans le module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Sub test()
    Dim Msg, Style, Title, Resultat
     
    rep = SelectFolder("Sélectionnez un répertoire :", Application.hWndAccessApp)
     
    Msg = "chemin : " & rep & "  ."
    Style = vbOKOnly + vbInformation
    Title = "Voici ton chemin"
    Resultat = MsgBox(Msg, Style, Title)
    End Sub
    ton chemin "rep" tu peux le mettre dans une zone de texte ou autre. tu en fait ce que tu veux.

    Nicko

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    j'ai compris.
    merci

    j'ai plus qu'a essayer.

  10. #10
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Pour affichez un explorateur plus facilement
    • ajout la référence Microsoft Office 11.0 Object Library à ton projet
    • Puis utilise Application.FileDialog(msoFileDialogFolderPicker)
    • Positionne le curseur sur FileDialog puis appuie sur F1 pour voir ses propriétés et méthode

    Pour plus de pratiques voir ici
    @+

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    merci à tous j'ai compris et ça marche.
    En fait c'est pas si compliqué que ça!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/06/2012, 17h29
  2. Réponses: 3
    Dernier message: 19/07/2009, 07h46
  3. [JSP][Tomcat] COmment choisir la place des fichiers .class?
    Par mathieu dans le forum Tomcat et TomEE
    Réponses: 16
    Dernier message: 03/03/2004, 10h24
  4. Comment choisir une langue differente de la locale?
    Par julian_ross dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/03/2004, 19h08
  5. Comment vider un dossier ?
    Par Zinoc dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/06/2002, 15h14

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