[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Verzeichnis-Dialog aufrufen

Sprache / Programm: Access ab Version 97
Beschreibung

Mit diesem API-Dialog ruft man den Verzeichnisauswahl-Dialog unter Windows auf.

VBA-Quelltext
''' Typdeklaration für API-Dialog 'Verzeichnis auswählen'
    Private 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

    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32.dll" (lpBrowseInfo As BrowseInfo) As Long

' Ermittelt Verzeichnisnamen und zeigt Windows-Dialog an
Public Function VerzeichnisWählen(Optional DialogTitel) As String
    Dim StrukturVerzeichnisInfo As BrowseInfo, ListenNr As Long, Pfad As String
 
    With StrukturVerzeichnisInfo
        .hOwner = hWndAccessApp
        .lpszTitle = IIf(IsMissing(DialogTitel), "Verzeichnispfad auswählen", CStr(DialogTitel))
        .ulFlags = &H1 ' BIF_RETURNONLYFSDIRS
    End With
   
    ListenNr = SHBrowseForFolder(StrukturVerzeichnisInfo)
    Pfad = Space$(512)
   
    If SHGetPathFromIDList(ByVal ListenNr, ByVal Pfad) Then VerzeichnisWählen = Left(Pfad, InStr(Pfad, vbNullChar) - 1)
   
End Function
Argumente der Funktion/Prozedur

DialogTitel

Optional. Titel des Windows-Dialogs
Verwendete Variable

DialogTitel (Optional)

Gibt den Text über dem Listenfenster an
Rückgabewert

Pfad

String des ausgewählten Verzeichnisses
Anwendungsbeispiel(e)...

In einem Formular befindet sich das Textfeld 'SuchPfad'. Das 'Beim Klicken'-Ereignis der Schaltfläche 'VerzeichnisSuchen' soll den Windows-Dialog 'Datei Öffnen' aufrufen.

Dazu ist die Ereignisprozedur zum  'Beim Klicken'-Ereignis so zu gestalten:

Private Sub VerzeichnisSuchen_Click()

    Dim Pfad As String

    Pfad = VerzeichnisWählen("Verzeichnis mit Access-Datenbanken")

    If Pfad <> "" Then Me.SuchPfad = Pfad

End Sub

Hinweis

Diese Funktion stammt aus einer der zahlreichen Quellen im Web.