tous69
-
24 févr. 2001 à 17:37
nabilos77
Messages postés4Date d'inscriptionvendredi 17 septembre 2004StatutMembreDernière intervention17 septembre 2004
-
28 sept. 2004 à 12:16
Bonjour
Je cherche a faire un petit programme qui devra me permetre
de recuperer le path complet
de tous les fichiers du DD avec l'extention , par
exemple ,EXE.
(Comme la recherche de fichier du navigateur de Windows)
Etant novice en VB5 je pense qu'il faut passer par un API.
Je vous remerci de l'aide que vous pourriez m'apporter
D'avance merci
nabilos77
Messages postés4Date d'inscriptionvendredi 17 septembre 2004StatutMembreDernière intervention17 septembre 2004 28 sept. 2004 à 12:16
esai d'ecrire le programme suivant:
Option Compare Database
Option Explicit
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OpenFileName) As Boolean
Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OpenFileName) As Boolean
' Déclaration d'un nouvel Objet : Bilan d'importation
Type BilanImport
Nb_Fiches_Importés As Long
Nb_Fiches_Impactées As Long
Nb_Fiches_Modifiées As Long
Nb_Doublons_Trouvées As Long
Nb_Fiches_à_Problèmes As Long
End Type
' Déclaration d'un nouvel Objet : caractèristiques d'un fichier
Type OpenFileName
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As Long
nMaxCustrFilter As Long
NFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustrData As Long
lpfnHook As Long
lpTemplateName As Long
End Type
Function Sel_Fichier(Optional Filtre As String) As String
On Error GoTo TraitementErreurs
Dim Message$, Filter$, filename$, FileTitle$, DefExt$
Dim Title$, szCurDir$, APIResults%
Dim OpenFileName As OpenFileName
' definit la chaine filtre et allocation
Select Case (Filtre)
Case Is = "mdb"
Filter$ = "Access (*.mdb)" & VBA.Chr$(0) & "*.MDB;*.MDA" & VBA.Chr$(0)
Case Is = "xls"
Filter$ = "Excel (*.xls)" & VBA.Chr$(0) & "*.XLS" & VBA.Chr$(0)
Case Is = "txt"
Filter$ = Filter$ & "Text (*.txt)" & VBA.Chr$(0) & "*.TXT" & VBA.Chr$(0)
Case Is = "jpg"
Filter$ = Filter$ & "Jpeg (*.jpg)" & VBA.Chr$(0) & "*.JPG" & VBA.Chr$(0)
Case Else
Filter$ = "import fichier (*.mdb;*.xls;*.txt;)" & VBA.Chr$(0) & "*.MDB;*.MDA;*.XLS;*.TXT;" & VBA.Chr$(0)
End Select
'allocation de l'espace pour la chaine de retour
filename$ = VBA.Chr$(0) & Space$(255) & VBA.Chr$(0)
FileTitle$ = Space$(255) & VBA.Chr$(0)
' nom donné au dialog box
Title$ = "Sélection du fichier à importer : " & VBA.Chr$(0)
' définit le path par défaut
szCurDir$ = CurDir$ & VBA.Chr$(0) '"c:\document\OptimNokia\Format" If Dir$(szCurDir$) "" Then szCurDir$ "p:\document"
' définit la structure de donnée avant d'appeler la fonction
OpenFileName.lStructSize = Len(OpenFileName)
' boite de dialog est lié au formulaire on passe le window handle
'OPENFILENAME.hWndOwner = Screen.ActiveForm.hWnd
' Sinon on passe un pointeur null
'OPENFILENAME.hwndOwner = 0&
With OpenFileName .lpstrFilter Filter$: .NFilterIndex 1: .lpstrFile = filename$ .nMaxFile 511: .lpstrFileTitle FileTitle$: .nMaxFileTitle = 511 .lpstrTitle Title$: .Flags OFN_FILEMUSTEXIST Or OFN_READONLY: .lpstrDefExt = DefExt$
.hInstance 0: .lpstrCustomFilter 0: .nMaxCustrFilter = 0: .lpstrInitialDir = szCurDir$: .nFileOffset = 0 .nFileExtension 0: .lCustrData 0: .lpfnHook = 0: .lpTemplateName = 0
End With
'on passera les données désirées à la fenêtres API
APIResults% = GetOpenFileName(OpenFileName)
If APIResults% <> 0 Then
filename$ = OpenFileName.lpstrFile
filename$ = Left$(filename$, InStr(filename$, VBA.Chr$(0)) - 1)
' message$ = "La base choisie est " + filename$
Else
' message$ = "Aucun fichier n'a été sélectionné"
Exit Function
End If
Sel_Fichier = CStr(filename$)
Exit Function
TraitementErreurs:
MsgBox ("Erreur dans le module import fonction Sel_Fichier()" & Err.Description & Err.Number)
End Function