Help: Pb. de création d'une fenetre explorer sous Access

wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005 - 26 mai 2004 à 10:24
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 26 mai 2004 à 11:32
Bonjour à celui qui me lit, et merci d'avance à celui qui arrivera à me dépanner.
Je fais appel sous access à une fenetre explorer windows. J'ai d'ailleur récupéré ce code sur ce site. (appel à des API). Mon but est de récupérer le chemin d'accès d'un fichier sur l'un de mes disque dur et de pour pouvoir ensuite l'utiliser dans Access. Pour cela j'ai donc besoin de pouvoir apercevoir dans ma fenetre explorer les dossiers ainsi que les FICHIERS (types excel). Après plusieurs recherches je me suis apercu qu'il faut normalement rentrer le code &H4000 pour pouvoir détailler les fichiers...mon programme fonctionne très bien sous Windows XP et Access 2000. PROBLEME, je suis passé sous Windows NT et Access 97 (boulot qui oblige), et maintenant ma fenetre Explorer ne détaille plus les fichiers. Je N'ARRIVE PAS à trouver la raison...pb. d'incompatibilité? manque t-il une bibliothèque dans Access 97 pour qu'il comprenne? Faut-il rentrer un autre code (autre que &H4000) pour windows NT? JE NE SAIS PLUS QUOI FAIRE.

Je joins une copie de mon code...quelqu'un reconnaitra d'ailleurs peut-etre le sien:

'*******' DECLARATION DES API '********'
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
'*******' DECLARATION DES API '********'
'*******' DECLARATION DES CONSTANTES '********'
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_BROWSEINCLUDEFILES = &H4000
'*******' DECLARATION DES CONSTANTES '********'
'*******' DECLARATION DES TYPES '********'
Private Type BROWSEINFO 'bi
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
Private Type SHITEMID 'mkid
cb As Long
abID As Byte
End Type

Private Type ITEMIDLIST 'idl
mkid As SHITEMID
End Type

Public Function EXPLORATEUR(Optional TexteInfo As String) As String

'-Déclarations
Dim bi As BROWSEINFO
Dim IDL As ITEMIDLIST
Dim pidl As Long
Dim RetVal As Long
Dim pos As Long
Dim Rep_Select As String 'Chemin du répertoire sélectionné

With bi
.hOwner = 0
.pidlRoot = 0&
.lpszTitle = TexteInfo '-Texte d'info de la feuille
.ulFlags = BIF_BROWSEINCLUDEFILES + BIF_STATUSTEXT
End With
'-Espace réservé pour la variable
Rep_Select = Space(512)

pidl& = SHBrowseForFolder(bi)

RetVal = SHGetPathFromIDList(ByVal pidl, ByVal Rep_Select)

If RetVal Then
'-Recherche la position du caractère (Chr(0))
pos = InStr(Rep_Select, Chr(0))
'-Selectionne le chemin du dossier à gauche sans le(Chr(0))
'et renvoie dans la fonction
EXPLORATEUR = Left(Rep_Select, pos - 1)
End If

End Function

Private Sub cmd_abbrechen_Click()
DoCmd.OpenForm ("frm_filtern")
DoCmd.Close acForm, "frm_import_daten", acSaveNo
End Sub

'-Explorer Ende************************************************************

Private Sub cmd_explorer_Click()
On Error GoTo Err_cmd_explorer_Click

Me.txt_rep_select.Value = EXPLORATEUR("Datei Suchen")

Exit_cmd_explorer_Click:
Exit Sub
Err_cmd_explorer_Click:
MsgBox Err.Description
Resume Exit_cmd_explorer_Click

End Sub

Merci pour votre aide et délivrez moi SVP de ce souci insolvable pour moi :)

Bonne journée

Wildmaus

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2004 à 10:39
A en croire msdn cela est lié à la version de Internet Explorer

(la constante BIF_BROWSEINCLUDEFILES etant prise en compte depuis la version 4.0)
0
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005
26 mai 2004 à 11:13
saurais-tu s'il y a une solution à ce pb. ou bien faut-il que je repense à la conception de mon programme?

merci en tout cas pour ta réponse...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2004 à 11:32
tu pourrais utiliser un Commondialog....
0
Rejoignez-nous