Je voudrais dans mon application access 2000, faire apparaitre une boite de
dialogue qui me permette de sélectionner un répertoire, afin de pouvoir
récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait
pas mal, mais il y avait deux inconvénients majeurs :
- Le code ne permettait pas d'afficher dans la listbox les différents
lecteurs, mais uniquement les répertoires d'un lecteur donné,
- le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne
permettrait de lister et sélectionner que les répertoires, sans les fichiers
qui y sont contenus ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Fredin
Bonjour,
Je pense que cela te conviendra sans problème :
'Choisir un répertoire - Fonctions API Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA Function RepertoireChoisi(ByVal Titre As String) As String Const BIF_RETURNONLYFSDIRS = 1 Const BIF_DONTGOBELOWDOMAIN = 2 Const MAX_PATH = 260
Dim lpIDList As Long Dim sBuffer As String Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo .lpszTitle = lstrcat(Titre, "") .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then sBuffer = Space(MAX_PATH) SHGetPathFromIDList lpIDList, sBuffer sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) RepertoireChoisi = sBuffer Else RepertoireChoisi = "Faux" End If End Function
Je pense que tout est là.
-- Patrick "JFP" wrote in message news:418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
Bonjour,
Je pense que cela te conviendra sans problème :
'Choisir un répertoire - Fonctions API
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA
Function RepertoireChoisi(ByVal Titre As String) As String
Const BIF_RETURNONLYFSDIRS = 1
Const BIF_DONTGOBELOWDOMAIN = 2
Const MAX_PATH = 260
Dim lpIDList As Long
Dim sBuffer As String
Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo
.lpszTitle = lstrcat(Titre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
RepertoireChoisi = sBuffer
Else
RepertoireChoisi = "Faux"
End If
End Function
Je pense que tout est là.
--
Patrick
"JFP" <jfpcom@wanadoo.fr> wrote in message
news:418bbf61$0$18490$8fcfb975@news.wanadoo.fr...
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite
de
dialogue qui me permette de sélectionner un répertoire, afin de pouvoir
récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne
marchait
pas mal, mais il y avait deux inconvénients majeurs :
- Le code ne permettait pas d'afficher dans la listbox les différents
lecteurs, mais uniquement les répertoires d'un lecteur donné,
- le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne
permettrait de lister et sélectionner que les répertoires, sans les
fichiers
qui y sont contenus ?
'Choisir un répertoire - Fonctions API Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA Function RepertoireChoisi(ByVal Titre As String) As String Const BIF_RETURNONLYFSDIRS = 1 Const BIF_DONTGOBELOWDOMAIN = 2 Const MAX_PATH = 260
Dim lpIDList As Long Dim sBuffer As String Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo .lpszTitle = lstrcat(Titre, "") .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then sBuffer = Space(MAX_PATH) SHGetPathFromIDList lpIDList, sBuffer sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) RepertoireChoisi = sBuffer Else RepertoireChoisi = "Faux" End If End Function
Je pense que tout est là.
-- Patrick "JFP" wrote in message news:418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
JFP
Heu... ce n'est pas encore tout à fait ça !! j'ai copié le script dans un module tel que tu me l'as présenté. Dans l'évènement clic de mon bouton, j'ai mis "=RepertoireChoisi()"... mais rien ne se passe Je suis alors passé à l'éditeur VB, et dans le fenêtre d'excécution, j'ai tapé : ?RepertoireChoisi() et la, j'ai un message d'erreur : "Erreur de compilation : type défini par l'utilisateur non défini" et en surbrillance la première ligne du script : Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) As Long
Alors ?... il manque un bout de code ? ou bien c'est moi qui m'y prends mal ?
Merci de ton aide, JFP
"Patrick Fredin" a écrit dans le message de news: #
Bonjour,
Je pense que cela te conviendra sans problème :
'Choisir un répertoire - Fonctions API Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA Function RepertoireChoisi(ByVal Titre As String) As String Const BIF_RETURNONLYFSDIRS = 1 Const BIF_DONTGOBELOWDOMAIN = 2 Const MAX_PATH = 260
Dim lpIDList As Long Dim sBuffer As String Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo .lpszTitle = lstrcat(Titre, "") .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then sBuffer = Space(MAX_PATH) SHGetPathFromIDList lpIDList, sBuffer sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) RepertoireChoisi = sBuffer Else RepertoireChoisi = "Faux" End If End Function
Je pense que tout est là.
-- Patrick "JFP" wrote in message news:418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
Heu... ce n'est pas encore tout à fait ça !!
j'ai copié le script dans un module tel que tu me l'as présenté.
Dans l'évènement clic de mon bouton, j'ai mis "=RepertoireChoisi()"... mais
rien ne se passe
Je suis alors passé à l'éditeur VB, et dans le fenêtre d'excécution, j'ai
tapé :
?RepertoireChoisi()
et la, j'ai un message d'erreur : "Erreur de compilation : type défini par
l'utilisateur non défini" et en surbrillance la première ligne du script :
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BROWSE_INFO_TYPE) As Long
Alors ?...
il manque un bout de code ?
ou bien c'est moi qui m'y prends mal ?
Merci de ton aide,
JFP
"Patrick Fredin" <nospams_patrick.fredin@iquebec.com> a écrit dans le
message de news: #thcNi2wEHA.1392@tk2msftngp13.phx.gbl...
Bonjour,
Je pense que cela te conviendra sans problème :
'Choisir un répertoire - Fonctions API
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA
Function RepertoireChoisi(ByVal Titre As String) As String
Const BIF_RETURNONLYFSDIRS = 1
Const BIF_DONTGOBELOWDOMAIN = 2
Const MAX_PATH = 260
Dim lpIDList As Long
Dim sBuffer As String
Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo
.lpszTitle = lstrcat(Titre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
RepertoireChoisi = sBuffer
Else
RepertoireChoisi = "Faux"
End If
End Function
Je pense que tout est là.
--
Patrick
"JFP" <jfpcom@wanadoo.fr> wrote in message
news:418bbf61$0$18490$8fcfb975@news.wanadoo.fr...
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite
de
dialogue qui me permette de sélectionner un répertoire, afin de pouvoir
récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne
marchait
pas mal, mais il y avait deux inconvénients majeurs :
- Le code ne permettait pas d'afficher dans la listbox les différents
lecteurs, mais uniquement les répertoires d'un lecteur donné,
- le temps de chargement de la liste des répertoire était
particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne
permettrait de lister et sélectionner que les répertoires, sans les
fichiers
qui y sont contenus ?
Heu... ce n'est pas encore tout à fait ça !! j'ai copié le script dans un module tel que tu me l'as présenté. Dans l'évènement clic de mon bouton, j'ai mis "=RepertoireChoisi()"... mais rien ne se passe Je suis alors passé à l'éditeur VB, et dans le fenêtre d'excécution, j'ai tapé : ?RepertoireChoisi() et la, j'ai un message d'erreur : "Erreur de compilation : type défini par l'utilisateur non défini" et en surbrillance la première ligne du script : Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) As Long
Alors ?... il manque un bout de code ? ou bien c'est moi qui m'y prends mal ?
Merci de ton aide, JFP
"Patrick Fredin" a écrit dans le message de news: #
Bonjour,
Je pense que cela te conviendra sans problème :
'Choisir un répertoire - Fonctions API Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSE_INFO_TYPE) 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
'Choisir un répertoire - Code VB/VBA Function RepertoireChoisi(ByVal Titre As String) As String Const BIF_RETURNONLYFSDIRS = 1 Const BIF_DONTGOBELOWDOMAIN = 2 Const MAX_PATH = 260
Dim lpIDList As Long Dim sBuffer As String Dim tBrowseInfo As BROWSE_INFO_TYPE
With tBrowseInfo .lpszTitle = lstrcat(Titre, "") .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList Then sBuffer = Space(MAX_PATH) SHGetPathFromIDList lpIDList, sBuffer sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) RepertoireChoisi = sBuffer Else RepertoireChoisi = "Faux" End If End Function
Je pense que tout est là.
-- Patrick "JFP" wrote in message news:418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
p.handerek
Bonsoir il y a un exemple super bien fait à www.ticegestion.com rubrique utilitaires access et exel sous le titre Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" a écrit dans le message de news: 418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
Bonsoir
il y a un exemple super bien fait à
www.ticegestion.com
rubrique utilitaires access et exel
sous le titre
Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" <jfpcom@wanadoo.fr> a écrit dans le message de news:
418bbf61$0$18490$8fcfb975@news.wanadoo.fr...
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite
de
dialogue qui me permette de sélectionner un répertoire, afin de pouvoir
récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne
marchait
pas mal, mais il y avait deux inconvénients majeurs :
- Le code ne permettait pas d'afficher dans la listbox les différents
lecteurs, mais uniquement les répertoires d'un lecteur donné,
- le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne
permettrait de lister et sélectionner que les répertoires, sans les
fichiers
qui y sont contenus ?
Bonsoir il y a un exemple super bien fait à www.ticegestion.com rubrique utilitaires access et exel sous le titre Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" a écrit dans le message de news: 418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
JFP
Effectivement le code est efficace et rapide... Juste un petit problème, il refuse la sélectiond'un dossier qui contient trop de fichier (celui que j'ai sélectionné en contient 500)
Entretemps j'ai fini par trouver la solution à l'adresse suivante (à toutes fins utiles) : http://www.excelabo.net/xl/messages.php#choixdossier
Merci de ton aide JFP
"p.handerek" a écrit dans le message de news: 418be458$0$8246$
Bonsoir il y a un exemple super bien fait à www.ticegestion.com rubrique utilitaires access et exel sous le titre Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" a écrit dans le message de news: 418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?
Merci d'avance, JFP
Effectivement le code est efficace et rapide...
Juste un petit problème, il refuse la sélectiond'un dossier qui contient
trop de fichier (celui que j'ai sélectionné en contient 500)
Entretemps j'ai fini par trouver la solution à l'adresse suivante (à toutes
fins utiles) :
http://www.excelabo.net/xl/messages.php#choixdossier
Merci de ton aide
JFP
"p.handerek" <p.handerek@teledisnet.be> a écrit dans le message de news:
418be458$0$8246$4d4efb8e@read.news.be.uu.net...
Bonsoir
il y a un exemple super bien fait à
www.ticegestion.com
rubrique utilitaires access et exel
sous le titre
Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" <jfpcom@wanadoo.fr> a écrit dans le message de news:
418bbf61$0$18490$8fcfb975@news.wanadoo.fr...
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite
de
dialogue qui me permette de sélectionner un répertoire, afin de pouvoir
récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne
marchait
pas mal, mais il y avait deux inconvénients majeurs :
- Le code ne permettait pas d'afficher dans la listbox les différents
lecteurs, mais uniquement les répertoires d'un lecteur donné,
- le temps de chargement de la liste des répertoire était
particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne
permettrait de lister et sélectionner que les répertoires, sans les
fichiers
qui y sont contenus ?
Effectivement le code est efficace et rapide... Juste un petit problème, il refuse la sélectiond'un dossier qui contient trop de fichier (celui que j'ai sélectionné en contient 500)
Entretemps j'ai fini par trouver la solution à l'adresse suivante (à toutes fins utiles) : http://www.excelabo.net/xl/messages.php#choixdossier
Merci de ton aide JFP
"p.handerek" a écrit dans le message de news: 418be458$0$8246$
Bonsoir il y a un exemple super bien fait à www.ticegestion.com rubrique utilitaires access et exel sous le titre Afficher des informations sur un fichier ou un dossier (sous Access 2000)
le code est ouvert
en esperant t'aider
ph
"JFP" a écrit dans le message de news: 418bbf61$0$18490$
Bonjour,
Je voudrais dans mon application access 2000, faire apparaitre une boite de dialogue qui me permette de sélectionner un répertoire, afin de pouvoir récupérer le chemin d'accès correspondant dans une variable.
J'avais trouvé une solution en VB qui utilisait une treeview. Ca ne marchait pas mal, mais il y avait deux inconvénients majeurs : - Le code ne permettait pas d'afficher dans la listbox les différents lecteurs, mais uniquement les répertoires d'un lecteur donné, - le temps de chargement de la liste des répertoire était particulièrement
longue.
Existe-t-il une solution via les API du type "openfile", mais qui ne permettrait de lister et sélectionner que les répertoires, sans les fichiers qui y sont contenus ?