noch zu tun / möglicherweise unlösbar: um bei Verwendung des .DefaultFileName NUR die eine vorgegebene Datei angezeigt zu bekommen, muß man mindestens ein Wildcard verwenden (fd.DefaultFileName = "msaccess.exe*"), ansonsten werden alle angezeigt. Keine Ahnung woran es liegt. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 11/2021 Version 1.6: Bugfixes im x64-Teil. Getestet bis Access 365 x64. Danke an Peter Doering und Phil Stiefel. 05/2010 Version 1.5: Version für Access ab 2007 bis 2010/64 Bit Mit freundlicher Genehmigung von Gunter Avenius (www.avenius.de) hier bereitgestellt. Das Klassenmodul ist kompatibel von Access 97 bis Access 2010 02/2005 Version 1.4: Kleinen Bug bei fd.MultiSelect = True beseitigt. Wenn mehrere Dateien über Multiselect ausgewählt wurden, gab .GetNextFile (nachdem alle ausgewählten Dateinamen durchlaufen waren) den Pfad ohne Dateinamen (und nicht wie in der Doku geschrieben = "") zurück bis alle vbNullChars im Buffer verbraucht waren. Wenn man die Schleife über den von .FileCount gelieferten Wert laufen ließ gab es kein Problem. Jetzt funktioniert auch folgendes sauber: Dim fd As New FileDialog Dim strDatei As String fd.MultiSelect = True strDatei = fd.ShowOpen Do Until strDatei = "" Debug.Print strDatei strDatei = fd.GetNextFile Loop Set fd = Nothing Geändert hat sich nur ein Zeichen in ParseAuswahl() Else ' Folgeaufruf idx = InStr(strDateien, cnstNull) If idx > 1 Then <---- war: If idx > 0 Then 09/1999 Version 1.3: neue Funktion .ShowFolder: Auswahl eines Directories Bug bei mehrfachem Aufruf direkt nacheinander (ohne Neuerzeugung des fd-Objektes mittels 'Dim fd as New FileDialog') beseitigt. Wenn beim zweiten Aufruf der zurückgegebene Dateiname länger war als der vorher ausgewählte wurde wegen eines Fehlers bei der Initialisierung ein leerer String ("") zurückgegeben. neues Property .hWnd Damit ist bei Formularen, die mittels acDialog geöffnet wurden (und nur da, warum auch immer), ein Ausrichten des Dialogs auf das Formular möglich und der Dialog klebt nicht mehr an der linken oberen Ecke des Access-Fensters. Bei nicht acDialog-Formularen ist die Verwendung unschädlich, allerdings auch unnütz. Verwendung: fd.hWnd = Me.hWnd Kreuzchen für 'Mit Schreibschutz öffnen' beim Öffnen entfernt. Sinn hat es sowieso keinen, wie man die Datei öffnet bleibt jedem selbst überlassen. Wer es wiederhaben möchte möge in CheckFlags() bei Case "Open" OFN_HIDEREADONLY durch OFN_READONLY ersetzen (dann ist das Kreuzchen da und nicht angekreuzt) oder OFN_HIDEREADONLY ganz entfernen (dann ist das Kreuzchen da und angekreuzt). Bei Verwendung von fd.MultiSelectOCXCompatible=True wird automatisch auch fd.MultiSelect = True gesetzt (Fehlervermeidung) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 26.3.1999 Version 1.2: neues Property .MultiSelect zur Selektion mehrerer Dateinamen auf einmal, Rückgabe der Namen entweder mit .MultiSelectOCXCompatible=True wie im OCX (in der Form "Pfad & vbnullchar & Datei1 & vbnullchar & Datei2 & ..." oder mit .MultiSelectOCXCompatible=False (Voreinstellung) über .GetNextFile neues Property .MultiSelectOCXCompatible s.o. neues Property .GetNextFile s.o. neues Property .FileCount Anzahl der bei MultiSelect ausgewählten Dateien, gut als Schleifenbegrenzer in Zusammenhang mit .GetNextFile (s.o). Terminierung aber auch mittels GetNextFile="". Anzahl der möglichen Zeichen für zurückgegebenen String erhöht: LEN_FILENAME_MULTISELECT = 2000 !! ACHTUNG: Bei Auswahl sehr vieler Dateien diesen Wert im Klassenmodul erhöhen !! LEN_FILENAME_NORMAL = 512 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 25.1.1999 Version 1.1: neues Property .DefaultFileName zur Vorgabe eines Dateinamens neues Property .DefaultDir wie .InitDir, nur zur Vereinheitlichung der Namen eingeführt. (InitDir ist der Name im OCX) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 1.11.1997 Version 1.0: ursprüngliches Release