Help: Pb. de création d'une fenetre explorer sous Access
wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 4 février 2005
-
26 mai 2004 à 10:24
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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)
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