j'ai peut etre ça pour toi : j'utilise un formulaire pour lancer des rattachements de table, ces tables sont stockés à différents endroits de mon réseau, pour choisir le chemin d'accès, je fait choisir le chemin VIA un formulaire et je stock ensuite le chemin dans un controle que j'utilise après pour faire ma sauce.
voici le code pour le bouton (RepProd) du formulaire qui donne accès au choix du chemin :
Private Sub SelRepProd_Click()
Me.RepProd = GetDirectory("Veuillez choisir le répertoire 'RACINE RÉELLES' : " )
If Me.RepProd = "" Then
Msgbox "Vous devez choix un répertoire RACINE RÉELLES", vbCritical
SelRepProd_Click
End If
End Sub
ET Voici le code correspondant à la fonction "GetDirectory" :
Option Compare Database
' ouvre une boite treeview
'Attribute VB_Name = "BrowseForFolderOrFile"
Option Explicit
'J. Walkenbach
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
'Définit le Bureau comme dossier racine
bInfo.pidlRoot = 0&
'Invite de la boite de dialogue
If IsMissing(Msg) Then
bInfo.lpszTitle = "Répertoire cible : "
Else
bInfo.lpszTitle = Msg
End If
'Type de renvoi : dossier
' bInfo.ulFlags = &H1
'Type de renvoi : fichier
bInfo.ulFlags = &H4000
'Affiche la boite de dialogue
x = SHBrowseForFolder(bInfo)
'Traite le résultat
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
c'est un code trop compliqué pour moi que j'ai récupéré sur internet, je ne pourrais pas t'expliquer la signification des fonctions utilisées, mais en tout cas ça marche super bien pour choisir un chemin et le stocker dans un controle ensuite...