Hallöchen.
In meinem Formular verwende ich ein Feld, in dem ich per Button je Datensatz einen Dateipfad suchen und eintragen lassen kann.
Bei dem Dialogfeld zum Suchen der Dateien öffnet sich immer der Pfad zur aktuellen Datenbank.
Gibt es irgendwie die Möglichkeit das so einzustellen, dass immer der zuletzt verwendete Pfad standardmäßig geöffnet wird?
Hallo,
ja, die Möglichkeit gibt es.... Zeig mal den Code, der beim Button-Klick ausgeführt wird und die Tabelle mit ihren Feldern, in der der Dateipfad gespeichert wird.
Also da geb ich mal alles her was ich dazu habe. Ich muss anmerken, dass ich den Code dazu aus einer Beispieldatenbank habe:
Folgendes steht im Code des Moduls:
Option Compare Database
Option Explicit
Public Function DateiAuswahl() As String
Dim strFile As String
WizHook.Key = 51488399
Call WizHook.GetFileName(Application.hWndAccessApp, "Microsoft Access", "Datei öffnen", "Öffnen", strFile, CurrentProject.Path, "Access-Datenbanken (*.mdb,*.accdb)", 0, 0, 0, False)
Debug.Print strFile
End Function
Public Function DateiAuswaehlen() As String
Dim strFile As String
Dim lngHwndOwner As Long
Dim strDlgTitle As String
Dim strOpenTitle As String
Dim strInitialDir As String
Dim strFilter As String
Dim lngFilterIndex As Long
Dim lngView As Long
Dim lngFlags As Long
Dim bolFOpen As Boolean
lngHwndOwner = Application.hWndAccessApp
strDlgTitle = "Datei auswählen"
strOpenTitle = "Öffnen"
strInitialDir = CurrentProject.Path
strFilter = "Access-Datenbanken (*.mdb,*.accdb)"
lngFilterIndex = 0
lngView = 0
lngFlags = 0
bolFOpen = False
WizHook.Key = 51488399
Call WizHook.GetFileName(lngHwndOwner, "Microsoft Access", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, lngFilterIndex, lngView, lngFlags, bolFOpen)
DateiAuswaehlen = strFile
End Function
Public Function OrdnerAuswaehlen() As String
Dim strFile As String
Dim lngHwndOwner As Long
Dim strDlgTitle As String
Dim strOpenTitle As String
Dim strInitialDir As String
Dim strFilter As String
Dim lngFilterIndex As Long
Dim lngView As Long
Dim lngFlags As Long
Dim bolFOpen As Boolean
lngHwndOwner = Application.hWndAccessApp
strDlgTitle = "Ordner auswählen"
strOpenTitle = "Auswählen"
strInitialDir = CurrentProject.Path
strFilter = ""
lngFilterIndex = 0
lngView = 0
lngFlags = 32
bolFOpen = True
WizHook.Key = 51488399
Call WizHook.GetFileName(lngHwndOwner, "Microsoft Access", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, lngFilterIndex, lngView, lngFlags, bolFOpen)
OrdnerAuswaehlen = strFile
End Function
Public Function BildAuswaehlen() As String
Dim strFile As String
Dim lngHwndOwner As Long
Dim strDlgTitle As String
Dim strOpenTitle As String
Dim strInitialDir As String
Dim strFilter As String
Dim lngFilterIndex As Long
Dim lngView As Long
Dim lngFlags As Long
Dim bolFOpen As Boolean
lngHwndOwner = Application.hWndAccessApp
strDlgTitle = "Bilder auswählen"
strOpenTitle = "Auswählen"
' strInitialDir = CurrentProject.Path
strInitialDir = "C:\Daten\ToolsUndCo\icons_VCollections\All256"
strFilter = "Bilddateien (*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.tif)|Alle Dateien (*.*)"
lngFilterIndex = 0
lngView = 4
lngFlags = 64
bolFOpen = True
WizHook.Key = 51488399
Call WizHook.GetFileName2(lngHwndOwner, "Microsoft Access", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, lngFilterIndex, lngView, lngFlags, bolFOpen, False)
BildAuswaehlen = strFile
End Function
Public Function DatenbankAuswaehlen() As String
Dim strFile As String
Dim lngHwndOwner As Long
Dim strDlgTitle As String
Dim strOpenTitle As String
Dim strInitialDir As String
Dim strFilter As String
Dim lngFilterIndex As Long
Dim lngView As Long
Dim lngFlags As Long
Dim bolFOpen As Boolean
lngHwndOwner = Application.hWndAccessApp
strDlgTitle = "Datenbank auswählen"
strOpenTitle = "Auswählen"
strInitialDir = CurrentProject.Path
strFilter = "Access-Dateien (*.mdb;*.accdb)|Kompilierte Dateien (*.mde;*.accde)|Add-Ins (*.mda;*.accda)|Alle Dateien (*.*)"
lngFilterIndex = 0
lngView = 5
lngFlags = 64
bolFOpen = True
WizHook.Key = 51488399
Call WizHook.GetFileName(lngHwndOwner, "Microsoft Access", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, lngFilterIndex, lngView, lngFlags, bolFOpen)
DatenbankAuswaehlen = strFile
End Function
Public Sub Filepath()
Dim strFilepath As String
strFilepath = "Acwzmain.mde"
WizHook.Key = 51488399
Debug.Print WizHook.AccessWizFilePath(strFilepath)
End Sub
Code des Buttons:
Private Sub Befehl2390_Click()
Me!txt_dateilink = OrdnerAuswaehlen
End Sub
Tabellenname: tbl_mastertabelle
Tabellenfeld wo der Link eingetragen wird: txt_dateilink
Hallo,
ZitatGibt es irgendwie die Möglichkeit das so einzustellen, dass immer der zuletzt verwendete Pfad standardmäßig geöffnet wird?
die einzige Möglichkeit die ich da sehe wäre, jeweils den letzten Pfad in einer Hilfstabelle zu speichern.
Hallo hier mal ein Vorschlag wie deine Funktion OrdnerAuswaehlen das Dialogfenster mit dem letzen Path startet. Funktioniert aber nur innerhalb der Laufzeit der Datenbank.
Option Compare Database
Option Explicit
[color=green]Private m_sPath As String[/color]
Public Function OrdnerAuswaehlen() As String
Dim strFile As String
Dim lngHwndOwner As Long
Dim strDlgTitle As String
Dim strOpenTitle As String
Dim strInitialDir As String
Dim strFilter As String
Dim lngFilterIndex As Long
Dim lngView As Long
Dim lngFlags As Long
Dim bolFOpen As Boolean
lngHwndOwner = Application.hWndAccessApp
strDlgTitle = "Ordner auswählen"
strOpenTitle = "Auswählen"
[color=orange]strInitialDir = IIf(Len(m_sPath), m_sPath, CurrentProject.Path)[/color]
strFilter = ""
lngFilterIndex = 0
lngView = 0
lngFlags = 32
bolFOpen = True
WizHook.Key = 51488399
Call WizHook.GetFileName(lngHwndOwner, "Microsoft Access", strDlgTitle, strOpenTitle, strFile, strInitialDir, strFilter, lngFilterIndex, lngView, lngFlags, bolFOpen)
OrdnerAuswaehlen = strFile
[color=green] If Len(strFile) Then m_sPath = strFile[/color]
End Function
Die anderen Funktionen sind ähnlich anzupassen, nur müsste hier u.U. der Dateiname abgeschitten werden.
Vielen Dank Daolix. Es funktioniert bestens :)