A97: GetOpenFileName für Verzeichnisse?

Hallo,
Gibt es eine Möglichkeit, den Datei-Öffnen-Dialog für die Auswahl eines Verzeichnisses zu öffnen?
Sonst schließt der ja nur, wenn ich eine Datei ausgewählt habe.
Gruß
J.

Hi!

Die Frage hab ich schon mehrfach gesehen… irgendwo im Archiv sollten die Antworten zu finden sein…

Gruß
Bernd

Danke, aber die Antworten dort beziehen sich nur auf die Dateiauswahl mittels GetOpenFileName (API-Call).
Ich meine aber die Möglichkeit, ein Verzeichnis auszuwählen, wie aus anderen Anwendungen bekannt. Evtl. durch die Flags (Teil der OPENFILENAME-Struktur)?
Gruß
J.

Folder-Dialog
Versuch’ mal dies hier:

Private Declare Function SHBrowseForFolder Lib "shell32" \_
 (lpbi As BrowseInfo) 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
Private Const BIF\_RETURNONLYFSDIRS = 1
Private Const BIF\_DONTGOBELOWDOMAIN = 2

Type BrowseInfo
 hWndOwner As Long
 pIDLRoot As Long
 pszDisplayName As Long
 lpszTitle As Long
 ulFlags As Long
 lpfnCallback As Long
 lParam As Long
 iImage As Long
End Type
Private Const MAX\_PATH = 260

Public Function PathDialog(Optional szTitle As String = "", Optional hWnd As Long = 0)
' Anzeige aller Verzeichnisse
' liefert den ausgewählten Pfad zurück
On Error GoTo Er
Dim lpIDList As Long, sBuffer As String, tBrowseInfo As BrowseInfo
 With tBrowseInfo
 If hWnd = 0 Then
 .hWndOwner = Application.hWndAccessApp
 Else
 .hWndOwner = hWnd
 End If
 .lpszTitle = lstrcat(szTitle, "")
 .ulFlags = BIF\_RETURNONLYFSDIRS + BIF\_DONTGOBELOWDOMAIN
 End With
 lpIDList = SHBrowseForFolder(tBrowseInfo)
 If (lpIDList) Then
 sBuffer = String(MAX\_PATH, 0)
 SHGetPathFromIDList lpIDList, sBuffer
 PathDialog = left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
 Else
 PathDialog = ""
 End If

Ex:
 On Error Resume Next
 Exit Function

Er:
 MsgBox "PathDialog: " & Err.Description
 Resume Ex
End Function

Reinhard

)

Hi! Ich darf mich da grad ma reinklinken… Kann mir mal jemand stecken wie ich den GetOpenFilename Positioniere ohne eine zweite Access-Instanz zu verwenden??

Hi! Ich darf mich da grad ma
reinklinken… Kann mir mal jemand
stecken wie ich den GetOpenFilename
Positioniere ohne eine zweite
Access-Instanz zu verwenden??

Da der Dialog modal ist, sehe ich da keine Chance…

Reinhard