{"id":55001345,"date":"2022-04-01T00:00:00","date_gmt":"2023-04-28T10:29:25","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1345"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/","title":{"rendered":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Bereits seit einiger Zeit bietet die Office-Bibliothek das FileDialog-Objekt an. In fr&uuml;heren Versionen gab es dort einige Einschr&auml;nkungen, weshalb Programmierer gern auf Alternativen zur&uuml;ckgegriffen haben wie etwa die entsprechenden Funktionen der Windows-API oder auch die der nicht dokumentierten WizHook-Klasse. Irgendwann hat Microsoft jedoch auch f&uuml;r Access alle Funktionen der FileDialog-Klasse freigeschaltet, unter anderem auch das Ausw&auml;hlen von zu speichernden Dateien. Daher schauen wir uns in diesem Beitrag einmal an, welche M&ouml;glichkeiten die FileDialog-Klasse nun bietet und ob wir diese f&uuml;r unsere Zwecke nutzen k&ouml;nnen.<\/p>\n<p><b>Video passend zu diesem Artikel:<\/b><\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/0KtSS2vqRS0\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/b><\/p>\n<h2>Die FileDialog-Klasse verf&uuml;gbar machen<\/h2>\n<p>Um auf die <b>FileDialog<\/b>-Klasse und ihre Methoden und Eigenschaften zugreifen zu k&ouml;nnen, ben&ouml;tigen Sie entweder einen Verweis auf die Bibliothek <b>Microsoft Office x.0 Object Library <\/b>oder Sie referenzieren diese per Late Binding. Da wir die Vorz&uuml;ge von IntelliSense zu sch&auml;tzen wissen, nutzen wir hier die Bibliothek, die Sie im VBA-Editor einbinden k&ouml;nnen. Dazu w&auml;hlen Sie den Men&uuml;eintrag <b>Extras|Verweise <\/b>aus und selektieren im nun erscheinenden Dialog den entsprechenden Eintrag (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_001.png\" alt=\"Verweis auf die Office-Bibliothek\" width=\"499,5589\" height=\"393,8207\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Verweis auf die Office-Bibliothek<\/span><\/b><\/p>\n<h2>Einen FileDialog anzeigen<\/h2>\n<p>Grunds&auml;tzlich zeigen Sie einen <b>FileDialog <\/b>wie folgt an:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n<span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\nobjFiledialog.Show<\/pre>\n<p>Sie ben&ouml;tigen also eine Objektvariable, die den Typ <b>Office.FileDialog <\/b>aufweist und f&uuml;llen diese mit einem Verweis auf die <b>FileDialog<\/b>-Klasse unter Angabe des Typs, den Sie w&uuml;nschen &#8211; in diesem Fall <b>msoFileDialogPicker<\/b>.<\/p>\n<p>Dann zeigen Sie den Dialog mit der Methode <b>Show <\/b>an. Das Ergebnis dieses einfachen Aufrufs finden Sie in Bild 2.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_002.png\" alt=\"Ein einfacher FileDialog\" width=\"574,559\" height=\"334,7675\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Ein einfacher FileDialog<\/span><\/b><\/p>\n<h2>Auswahl im FileDialog auswerten<\/h2>\n<p>Nun k&ouml;nnen Sie nach der Auswahl wie im oben angegebenen Beispiel mit dem Ergebnis noch nichts anfangen. Das erledigen wir, indem wir das Ergebnis des Aufrufs pr&uuml;fen und dann die selektierten Daten auswerten.<\/p>\n<p>Die ersten beiden Zeilen bleiben gleich:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n<span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)<\/pre>\n<p>Danach rufen wir die <b>Show<\/b>-Methode jedoch als Teil einer <b>If&#8230;Then<\/b>-Bedingung auf und pr&uuml;fen in dieser das Ergebnis.<\/p>\n<p>Dieses kann <b>True <\/b>oder <b>False <\/b>lauten. Es lautet <b>True<\/b>, wenn der Benutzer die Eingabe mit der <b>&Ouml;ffnen<\/b>-Schaltfl&auml;che abgeschlossen hat und <b>False<\/b>, wenn er die <b>Abbrechen<\/b>-Schaltfl&auml;che w&auml;hlt.<\/p>\n<p>Im ersten Fall greifen wir mit <b>objFileDialog.SelectedItems(1) <\/b>auf den ersten ausgew&auml;hlten Eintrag zu und geben diesen im Direktbereich des VBA-Editors aus, im zweiten zeigen wir den Text <b>Keine Datei ausgew&auml;hlt <\/b>an:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>objFiledialog.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n     <span style=\"color:blue;\">Debug.Print<\/span> objFiledialog.SelectedItems(1)\r\n<span style=\"color:blue;\">Else<\/span>\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"Keine Datei ausgew&auml;hlt\"\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<h2>Verschiedene Dialogtypen<\/h2>\n<p>Sie k&ouml;nnen verschiedene Dialogtypen nutzen. Dazu geben Sie unterschiedliche Werte beim Zuweisen des <b>FileDialog<\/b>-Objekts an.<\/p>\n<p>Diese lauten:<\/p>\n<ul>\n<li><b>msoFileDialogFilePicker<\/b>: Zeigt einen Dialog zum Ausw&auml;hlen einer oder mehrerer Dateien an.<\/li>\n<li><b>msoFileDialogFolderPicker<\/b>: Zeigt einen Dialog zum Ausw&auml;hlen eines Verzeichnisses an (siehe Bild 3).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_003.png\" alt=\"Der FileDialog mit msoFileDialogFolderPicker zeigt nur Ordner an, keine Dateien.\" width=\"574,559\" height=\"334,7675\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Der FileDialog mit msoFileDialogFolderPicker zeigt nur Ordner an, keine Dateien.<\/span><\/b><\/p>\n<li><b>msoFileDialogOpen<\/b>: Zeigt den gleichen Dialog an wie <b>msoFileDialogFilePicker<\/b>, jedoch mit dem Titel <b>&Ouml;ffnen<\/b>. Ist f&uuml;r andere Office-Anwendungen wie Word oder Excel geeignet, wo die Dokumente so direkt ge&ouml;ffnet werden k&ouml;nnen.<\/li>\n<li><b>msoFileDialogSaveAs<\/b>: Zeigt einen Dialog zum Angeben einer zu speichernden Datei an. Es kann eine vorhandene Datei ausgew&auml;hlt werden oder auch ein neuer Dateiname angegeben werden (siehe Bild 4). Die Schaltfl&auml;che zum Best&auml;tigen der Eingabe ist hier mit <b>Speichern <\/b>beschriftet.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_004.png\" alt=\"Der FileDialog mit msoFileDialogSaveAs erlaubt auch die Eingabe noch nicht vorhandener Dateinamen. \" width=\"599,559\" height=\"372,2061\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Der FileDialog mit msoFileDialogSaveAs erlaubt auch die Eingabe noch nicht vorhandener Dateinamen. <\/span><\/b><\/p>\n<\/ul>\n<h2>Eigenschaften werden beibehalten<\/h2>\n<p>Wenn Sie die nachfolgend beschrieben Eigenschaften nutzen, werden die Einstellungen beim erneuten &Ouml;ffnen eines <b>FileDialog<\/b>-Fensters aus der gleichen Access-Session heraus beibehalten, wenn Sie nicht explizit neue Werte f&uuml;r die Eigenschaften angeben.<\/p>\n<h2>Mehrfachauswahl erlauben<\/h2>\n<p>Mit der Eigenschaft <b>AllowMultiSelect <\/b>k&ouml;nnen Sie festlegen, ob der Benutzer nur einen Eintrag (<b>False<\/b>) oder mehrere Eintr&auml;ge ausw&auml;hlen kann (<b>True<\/b>).<\/p>\n<p>Diese Eigenschaft stellen Sie nach dem Zuweisen der <b>FileDialog<\/b>-Klasse an die Variable <b>objFileDialog <\/b>ein:<\/p>\n<pre>objFiledialog.AllowMultiSelect = <span style=\"color:blue;\">True<\/span><\/pre>\n<p>Wenn Sie so einen <b>msoFileDialogFilePicker<\/b>-Dialog &ouml;ffnen, k&ouml;nnen Sie beispielsweise bei gedr&uuml;ckter <b>Strg<\/b>-Taste mehrere Dateien wie in Bild 5 ausw&auml;hlen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_005.png\" alt=\"Mehrfachauswahl mit dem FileDialog-Objekt\" width=\"599,559\" height=\"349,3338\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Mehrfachauswahl mit dem FileDialog-Objekt<\/span><\/b><\/p>\n<p>Danach ist allerdings eine andere Auswertung erforderlich als bei der einfachen Auswahl, denn wir erhalten ja nicht nur einen, sondern gegebenenfalls auch mehrere Eintr&auml;ge zur&uuml;ck. Im Beispiel aus Listing 1 ermitteln wir zun&auml;chst die Anzahl der selektierten Dateien und geben diese im Direktbereich aus. Anschlie&szlig;end durchlaufen wir in einer Schleife alle Eintr&auml;ge der Auflistung <b>SelectedItems <\/b>und geben diese ebenfalls im Direktbereich aus.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>FileDialog_FilePicker_Mehrfach()\r\n     <span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n     <span style=\"color:blue;\">Dim <\/span>l<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\n     objFiledialog.AllowMultiSelect = <span style=\"color:blue;\">True<\/span>\r\n     <span style=\"color:blue;\">If <\/span>objFiledialog.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"Es wurden \" & objFiledialog.SelectedItems.Count & \" Dateien ausgew&auml;hlt:\"\r\n         For l = 1 To objFiledialog.SelectedItems.Count\r\n             <span style=\"color:blue;\">Debug.Print<\/span> objFiledialog.SelectedItems(l)\r\n         <span style=\"color:blue;\">Next<\/span> l\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"Keine Datei ausgew&auml;hlt\"\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Ausgabe einer Mehrfachauswahl im Direktbereich<\/span><\/b><\/p>\n<h2>Beschriftung der Schaltfl&auml;che zum Ausw&auml;hlen &auml;ndern<\/h2>\n<p>Mit der Eigenschaft <b>ButtonName <\/b>k&ouml;nnen Sie die sichtbare Bezeichnung der Schaltfl&auml;che zum Ausw&auml;hlen der gew&auml;hlten Dateien oder Verzeichnisse &auml;ndern. Das gelingt allerdings nicht bei allen <b>FileDialog<\/b>-Typen auf Anhieb, sondern bei manchen erst nach der Auswahl eines Eintrags. Bei den Dialogen der Typen <b>msoFileDialogFolderPicker <\/b>und <b>msoFileDialogSaveAs <\/b>erscheint der gew&uuml;nschte Text sofort. Das sieht beispielsweise wie im folgenden Codeausschnitt aus:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n<span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFolderPicker)\r\nobjFiledialog.ButtonName = \"FolderPicker\"\r\n<span style=\"color:blue;\">If <\/span>objFiledialog.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n     ...<\/pre>\n<p>Das Ergebnis sehen Sie in Bild 6.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_006.png\" alt=\"&Auml;ndern der Beschriftung der linken Schaltfl&auml;che\" width=\"599,559\" height=\"293,4012\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: &Auml;ndern der Beschriftung der linken Schaltfl&auml;che<\/span><\/b><\/p>\n<p>Bei den anderen Einstellungen wird der gew&uuml;nschte Text erst angezeigt, wenn der Benutzer mindestens eine Datei ausgew&auml;hlt hat (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_007.png\" alt=\"&Auml;ndern der Beschriftung der linken Schaltfl&auml;che erst nach erfolgter Auswahl\" width=\"599,559\" height=\"293,4012\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: &Auml;ndern der Beschriftung der linken Schaltfl&auml;che erst nach erfolgter Auswahl<\/span><\/b><\/p>\n<h2>&Uuml;berschrift des Dialogs einstellen<\/h2>\n<p>Mit der Eigenschaft <b>Title<\/b> k&ouml;nnen Sie den Text in der Titelzeile festlegen:<\/p>\n<pre>objFiledialog.Title = \"Datei ausw&auml;hlen\"<\/pre>\n<h2>Beim &Ouml;ffnen anzuzeigenden Ordner einstellen<\/h2>\n<p>Wenn Sie direkt beim &Ouml;ffnen des Dialogs einen bestimmten Ordner anzeigen wollen, &uuml;bergeben Sie diesen f&uuml;r die Eigenschaft <b>InitialFileName<\/b>.<\/p>\n<p>Den Ordnernamen m&uuml;ssen Sie immer mit einem Backslash (<b>\\<\/b>) abschlie&szlig;en. Wenn Sie beispielsweise das Verzeichnis <b>c: <\/b>anzeigen wollen, geben Sie <b>c:\\ <\/b>an:<\/p>\n<pre>objFiledialog.InitialFileName = \"c:\\\"<\/pre>\n<p>Wollen Sie beispielsweise im Verzeichnis der aktuellen Datenbank starten, verwenden Sie die Funktion <b>CurrentProject.Path <\/b>und schlie&szlig;en dies mit dem Backslash-Zeichen ab:<\/p>\n<pre>objFiledialog.InitialFileName = CurrentProject.Path & \"\\\"<\/pre>\n<h2>Beim &Ouml;ffnen auszuw&auml;hlende Datei vorbelegen<\/h2>\n<p>Gegebenenfalls wissen Sie auch schon, wie die auszuw&auml;hlende Datei hei&szlig;en soll. Das ist beispielsweise bei Konfigurationsdateien oft der Fall oder auch bei der Auswahl von Backenddatenbanken.<\/p>\n<p>Dann geben Sie f&uuml;r die Eigenschaft <b>InitialFileName <\/b>einfach den vollst&auml;ndigen Pfad zu der auszuw&auml;hlenden Datei an &#8211; hier f&uuml;r eine Backenddatenbank:<\/p>\n<pre>objFiledialog.InitialFileName = CurrentProject.Path & \"\\Backend.accdb\"<\/pre>\n<h2>Ansicht beim &Ouml;ffnen<\/h2>\n<p>Mit der Eigenschaft <b>InitialView <\/b>k&ouml;nnen Sie festlegen, welche Ansicht beim &Ouml;ffnen des <b>FileDialog<\/b>-Objekts verwendet werden soll. Hier gibt es die folgenden Werte:<\/p>\n<ul>\n<li><b>msoFileDialogViewDetails<\/b><\/li>\n<li><b>msoFileDialogViewLargeIcons<\/b><\/li>\n<li><b>msoFileDialogViewList<\/b><\/li>\n<li><b>msoFileDialogViewPreview<\/b><\/li>\n<li><b>msoFileDialogViewProperties<\/b><\/li>\n<li><b>msoFileDialogViewSmallIcons<\/b><\/li>\n<li><b>msoFileDialogViewThumbnail<\/b><\/li>\n<li><b>msoFileDialogViewTiles<\/b><\/li>\n<li><b>msoFileDialogViewWebView<\/b><\/li>\n<\/ul>\n<p>Auf dem Testsystem mit Windows 10 und Office 365 hat diese Einstellung keine Auswirkung.<\/p>\n<h2>Filtern der angezeigten Dateien<\/h2>\n<p>Sie k&ouml;nnen festlegen, nach welchen Dateien beziehungsweise Dateiendungen das <b>FileDialog<\/b>-Fenster filtern soll. Dazu verwenden Sie die Eigenschaft <b>FilterIndex<\/b>, mit der Sie festlegen, welcher der aufgef&uuml;hrten Filter verwendet werden soll und die Auflistung <b>Filters<\/b>, der Sie eigene Filter hinzuf&uuml;gen k&ouml;nnen.<\/p>\n<p>Die Auflistung <b>Filters <\/b>enthielt auf dem Testsystem den Filter f&uuml;r alle Dateien, also f&uuml;r <b>*.*<\/b>, und den Beschreibungstext <b>Alle Dateien<\/b>. Die <b>Filters<\/b>-Auflistung listet Elemente des Typs <b>Filter <\/b>auf, der wiederum verschiedene Eigenschaften liefert. Als Erstes k&ouml;nnen Sie beispielsweise im Direktbereich die Anzahl der definierten Filter ausgeben lassen:<\/p>\n<pre>  FileDialog(msoFileDialogFilePicker).Filters.Count<\/pre>\n<p>Um die Eigenschaften der einzelnen <b>Filter<\/b>-Elemente der <b>Filters<\/b>-Auflistung auszulesen, verwenden wir eine <b>For Each<\/b>-Schleife wie die folgende:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n<span style=\"color:blue;\">Dim <\/span>objFilter<span style=\"color:blue;\"> As <\/span>FileDialogFilter\r\n<span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\nFor Each objFilter In objFiledialog.Filters\r\n     <span style=\"color:blue;\">Debug.Print<\/span> objFilter.Description, objFilter.Extensions\r\n<span style=\"color:blue;\">Next<\/span> objFilter<\/pre>\n<p>Damit erhielten wir die folgende Ausgabe:<\/p>\n<pre>Alle Dateien  *.*<\/pre>\n<p>Die Eigenschaft <b>Description <\/b>nimmt also den Beschreibungstext auf und die Eigenschaft <b>Extensions <\/b>die Dateiendungen.<\/p>\n<h2>Filter verwalten<\/h2>\n<p>Wenn der Dateidialog nicht alle Dateiendungen anzeigen soll, k&ouml;nnen Sie die zur Verf&uuml;gung stehenden Filter anpassen.<\/p>\n<p>Sie k&ouml;nnen die vorhandenen Filter vollst&auml;ndig l&ouml;schen, einzelne Filter entfernen oder auch Filter hinzuf&uuml;gen sowie einstellen, welcher der Filter beim Anzeigen des Dialogs ausgew&auml;hlt werden soll.<\/p>\n<h2>Alle Filter l&ouml;schen<\/h2>\n<p>Als Erstes wollen wir alle verf&uuml;gbaren Filter l&ouml;schen. Das erledigen wir mit der <b>Clear<\/b>-Methode:<\/p>\n<pre>objFiledialog.Filters.Clear<\/pre>\n<p>Danach zeigt der Dateidialog allerdings wieder den Eintrag <b>Alle Dateien (*.*) <\/b>an.<\/p>\n<p>Dieser Eintrag erscheint immer, wenn zuvor alle anderen Filter gel&ouml;scht wurden. Dieser wird f&uuml;r die folgenden Aufrufe von Dateidialogen ebenfalls gesetzt.<\/p>\n<h2>Filter gezielt l&ouml;schen<\/h2>\n<p>Wenn Sie gezielt einen der enthaltenen Filter entfernen wollen, erledigen Sie das mit der <b>Delete<\/b>-Methode der <b>Filters<\/b>-Auflistung. Dieser &uuml;bergeben sie den <b>1<\/b>-basierten Index des zu entfernenden Filters:<\/p>\n<pre>objFiledialog.Filters.Delete 3<\/pre>\n<h2>Filter hinzuf&uuml;gen<\/h2>\n<p>Die folgenden Anweisungen l&ouml;schen die vorhandenen Filter und f&uuml;gen drei neue Filter hinzu:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n<span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\nobjFiledialog.Filters.Clear\r\nobjFiledialog.Filters.Add \"PNG-Bilddateien\", \"*.png\"\r\nobjFiledialog.Filters.Add \"ICO-Bilddateien\", \"*.ico\"\r\nobjFiledialog.Filters.Add \"Access-Datenbanken\",  \"*.mdb, *.accdb\"<\/pre>\n<p>Die <b>Add<\/b>-Methode erwartet dabei die folgenden Parameter:<\/p>\n<ul>\n<li><b>Description<\/b>: Beschreibungstext f&uuml;r den Filter<\/li>\n<li><b>Extension<\/b>: Dateiendung im Format <b>*.[Dateiendung]<\/b><\/li>\n<li><b>Position<\/b>: Position, an welcher der Filter eingesetzt werden soll (optionaler Parameter). Wenn Sie die Filter in der gew&uuml;nschten Reihenfolge angeben, ben&ouml;tigen Sie diesen Parameter nicht.<\/li>\n<\/ul>\n<p>Wenn Sie den Dialog mit den Filtern aus dem obigen Beispiel &ouml;ffnen, sieht die ausgeklappte Liste der Filter wie in Bild 8 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_008.png\" alt=\"Beispiel f&uuml;r Dateifilter\" width=\"574,559\" height=\"273,5224\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Beispiel f&uuml;r Dateifilter<\/span><\/b><\/p>\n<h2>Filter voreinstellen<\/h2>\n<p>Die <b>Filters<\/b>-Auflistung h&auml;lt noch eine Eigenschaft bereits, mit der Sie einstellen k&ouml;nnen, welcher Filter beim &Ouml;ffnen des Dialogs selektiert sein soll (standardm&auml;&szlig;ig wird der erste Filter der Liste angezeigt). Die Eigenschaft lautet <b>FilterIndex <\/b>und erwartet den <b>1<\/b>-basierten Index des anzuzeigenden Filters. Wenn Sie also f&uuml;r den obigen Code den Filter <b>Access-Datenbanken (*.mdb;*.accdb) <\/b>voreinstellen m&ouml;chten, f&uuml;gen Sie die folgende Anweisung hinzu:<\/p>\n<pre>objFiledialog.FilterIndex = 3<\/pre>\n<h2>Dateidialoge praktisch einsetzen<\/h2>\n<p>Die folgenden Abschnitte enthalten Beispiele, wie Sie die gew&uuml;nschten Dateipfade oder Verzeichnisse abfragen und diese dann beispielsweise in einem Textfeld oder einem Listenfeld anzeigen.<\/p>\n<p>Das Formular, mit dem wir die verschiedenen Dialoge aufrufen und die Ergebnisse anzeigen, sieht in der Entwurfsansicht wie in Bild 9 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_009.png\" alt=\"Entwurfsansicht des Formulars mit Beispielen zum Anzeigen verschiedener Dateiauswahldialoge\" width=\"499,5589\" height=\"293,1598\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Entwurfsansicht des Formulars mit Beispielen zum Anzeigen verschiedener Dateiauswahldialoge<\/span><\/b><\/p>\n<h2>Dateien ausw&auml;hlen mit Textfeld<\/h2>\n<p>Das oberste Textfeld in diesem Formular namens <b>txtDatei <\/b>soll das Ergebnis des Dateiauswahldialogs anzeigen, den wir mit der Schaltfl&auml;che <b>cmdDateiauswahlEinfach <\/b>&ouml;ffnen. Diese l&ouml;st die folgende Prozedur aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdDateiauswahlEinfach_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n     <span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\n     <span style=\"color:blue;\">With<\/span> objFiledialog\r\n         .AllowMultiSelect = <span style=\"color:blue;\">False<\/span>\r\n         .ButtonName = \"Ausw&auml;hlen\"\r\n         .Filters.Clear\r\n         .InitialFileName = \"c:\\\"\r\n         .Title = \"W&auml;hlen Sie eine Datei aus\"\r\n         <span style=\"color:blue;\">If <\/span>.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             Me!txtDatei = .SelectedItems(1)\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             Me!txtDatei = \"\"\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der dadurch hervorgerufene Dialog sieht wie in Bild 10 aus und zeigt den gew&uuml;nschten Titel an. Die Beschriftung der Schaltfl&auml;che &auml;ndert sich erst nach der Auswahl einer Datei in den mit <b>ButtonName <\/b>angegebenen Wert. Es kann nur eine Datei ausgew&auml;hlt werden und das Startverzeichnis lautet <b>c:\\<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_010.png\" alt=\"Auswahldialog f&uuml;r eine einzelne Datei\" width=\"599,559\" height=\"340,3888\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Auswahldialog f&uuml;r eine einzelne Datei<\/span><\/b><\/p>\n<p>Wenn der Benutzer die <b>Abbrechen<\/b>-Schaltfl&auml;che bet&auml;tigt, wird der <b>Else<\/b>-Zweig der <b>If&#8230;Then<\/b>-Bedingung ausgef&uuml;hrt und das Textfeld <b>txtDatei <\/b>mit einer leeren Zeichenketten gef&uuml;llt.<\/p>\n<h2>Mehrere Dateien ausw&auml;hlen mit Listenfeld<\/h2>\n<p>F&uuml;r das Ausw&auml;hlen auch mehrerer Dateien haben wir ein Listenfeld namens <b>lstDateien<\/b> f&uuml;r die Anzeige der ausgew&auml;hlten Dateien hinzugef&uuml;gt. Damit wir dieser mit der <b>Add-Item<\/b>-Methode neue Eintr&auml;ge hinzuf&uuml;gen k&ouml;nnen, stellen wir die Eigenschaft <b>Herkunftstyp <\/b>auf <b>Wertliste <\/b>ein.<\/p>\n<p>Ein Klick auf die Schaltfl&auml;che <b>cmdDateiauswahlMehrfach <\/b>l&ouml;st die folgende Ereignisprozedur aus, die einige Eigenschaften anders einstellt &#8211; vor allem die Eigenschaft <b>AllowMultiSelect<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdDateiauswahlMehrfach_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n     <span style=\"color:blue;\">Dim <\/span>l<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogFilePicker)\r\n     <span style=\"color:blue;\">With<\/span> objFiledialog\r\n         .AllowMultiSelect = <span style=\"color:blue;\">True<\/span>\r\n         .ButtonName = \"Ausw&auml;hlen\"\r\n         .Filters.Clear\r\n         .InitialFileName = CurrentProject.Path & \"\\\"\r\n         .Title = \"W&auml;hlen Sie eine oder mehrere Dateien aus\"\r\n         <span style=\"color:blue;\">If <\/span>.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             For l = 1 To .SelectedItems.Count\r\n                 Me!lstDateien.AddItem .SelectedItems.Item(l)\r\n             <span style=\"color:blue;\">Next<\/span> l\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diese sorgt daf&uuml;r, dass wir im Dialog aus Bild 11 nun mehrere Dateien ausw&auml;hlen k&ouml;nnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_011.png\" alt=\"Auswahldialog f&uuml;r eine oder mehrere Dateien\" width=\"649,559\" height=\"329,3928\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Auswahldialog f&uuml;r eine oder mehrere Dateien<\/span><\/b><\/p>\n<p>Nach der Auswahl f&uuml;gt die Prozedur die gew&auml;hlten Dateien mit der <b>AddItem<\/b>-Methode zum Listenfeld <b>lstDateien <\/b>hinzu. Sie k&ouml;nnen hier in einem weiterem Vorgang auch noch weitere Dateien aus dem gleichen oder aus anderen Verzeichnissen hinzuf&uuml;gen. Diese erscheinen dann wie in Bild 12 im Listenfeld.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_012.png\" alt=\"Anzeige mehrerer ausgew&auml;hlter Dateien\" width=\"499,5589\" height=\"255,3753\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Anzeige mehrerer ausgew&auml;hlter Dateien<\/span><\/b><\/p>\n<p>F&uuml;r die Schaltfl&auml;che <b>cmdListeLeeren<\/b> hinterlegen wir die folgende Prozedur, mit der Sie eventuell vorhandene Listeneintr&auml;ge aus dem Listenfeld entfernen k&ouml;nnen. Dies erledigt die Zuweisung einer leeren Zeichenkette zur Eigenschaft <b>RowSource<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdListeLeeren_Click()\r\n     Me!lstDateien.RowSource = \"\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Verzeichnis ausw&auml;hlen mit Textfeld<\/h2>\n<p>Die n&auml;chste Schaltfl&auml;che <b>cmdVerzeichnisauswahl <\/b>erlaubt das Selektieren eines Verzeichnisses. Hier weisen wir die <b>FileDialog<\/b>-Klasse mit dem Parameter <b>msoFileDialogFolderPicker <\/b>zu und belegen wieder einige Eigenschaften vor:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdVerzeichnisauswahl_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n     <span style=\"color:blue;\">Set<\/span> objFiledialog =  FileDialog(msoFileDialogFolderPicker)\r\n     <span style=\"color:blue;\">With<\/span> objFiledialog\r\n         .AllowMultiSelect = <span style=\"color:blue;\">False<\/span>\r\n         .ButtonName = \"Verzeichnis w&auml;hlen\"\r\n         .Filters.Clear\r\n         .InitialFileName = \"c:\\\"\r\n         .Title = \"W&auml;hlen Sie ein Verzeichnis aus\"\r\n         <span style=\"color:blue;\">If <\/span>.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             Me!txtVerzeichnis = .SelectedItems(1)\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             Me!txtVerzeichnis = \"\"\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der resultierende Dialog sieht wie in Bild 13 aus. Das Ergebnis ist eine Pfadangabe, hier <b>c:\\Projekte<\/b>, die in das Textfeld <b>txtVerzeichnis <\/b>eingetragen wird.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_013.png\" alt=\"Auswahldialog f&uuml;r ein Verzeichnis\" width=\"624,559\" height=\"316,9127\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Auswahldialog f&uuml;r ein Verzeichnis<\/span><\/b><\/p>\n<h2>Speicherort ausw&auml;hlen mit Textfeld<\/h2>\n<p>Fehlt noch das Selektieren oder Eingeben eines Speicherortes. Dieses Beispiel wird durch die Schaltfl&auml;che <b>cmdSpeicherpfadAuswaehlen <\/b>ausgel&ouml;st und verwendet den folgenden Code:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdSpeicherpfadAuswaehlen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objFiledialog<span style=\"color:blue;\"> As <\/span>Office.FileDialog\r\n     <span style=\"color:blue;\">Set<\/span> objFiledialog = FileDialog(msoFileDialogSaveAs)\r\n     <span style=\"color:blue;\">With<\/span> objFiledialog\r\n         .AllowMultiSelect = <span style=\"color:blue;\">False<\/span>\r\n         .ButtonName = \"Speicherpfad w&auml;hlen\/eingeben\"\r\n         .InitialFileName = CurrentProject.Path & \"\\Test.txt\"\r\n         .Title = \"Geben Sie einen Speicherpfad ein\"\r\n         <span style=\"color:blue;\">If <\/span>.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             Me!txtSpeicherpfad = .SelectedItems(1)\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             Me!txtSpeicherpfad = \"\"\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Einen Filter brauchen wir hier nicht vorzugeben oder zu entfernen, weil als Dateityp immer <b>Alle Dateien (*.*)<\/b> verwendet wird. Hier weisen wir die <b>FileDialog<\/b>-Klasse mit dem Parameter <b>msoFileDialogSaveAs <\/b>zu. Die Werte f&uuml;r die Eigenschaften <b>ButtonName<\/b> und <b>Title <\/b>bewirken die &uuml;blichen Einstellungen. Mit <b>InitialFileName <\/b>geben wir diesmal direkt den Namen f&uuml;r die zu speichernde Datei vor. Das Ergebnis sehen sie in Bild 14.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_014.png\" alt=\"Auswahldialog f&uuml;r einen Speicherpfad\" width=\"674,559\" height=\"387,1949\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Auswahldialog f&uuml;r einen Speicherpfad<\/span><\/b><\/p>\n<p>Hinweis: Wenn die Datei bereits vorhanden ist, zeigt der Dialog automatisch eine entsprechende Meldung an. Mit einem Klick auf Ja wird die Auswahl &uuml;bernommen, mit Nein kehren Sie zum Dateiauswahldialog zur&uuml;ck (siehe Bild 15).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1345_015.png\" alt=\"R&uuml;ckfrage bei bereits vorhandenen Dateien\" width=\"424,5589\" height=\"160,4157\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: R&uuml;ckfrage bei bereits vorhandenen Dateien<\/span><\/b><\/p>\n<h2>&Uuml;bernehmen von Werten aus den Textfeldern<\/h2>\n<p>Sie k&ouml;nnen die Werte aus den Textfeldern auch f&uuml;r die Vorbelegung der Dateiauswahldialoge verwenden. Wir zeigen das am Beispiel des ersten Dialogs zum Ausw&auml;hlen einer Eigenschaft. Hier ersetzen wir die Zeile zum Zuweisen der Eigenschaft <b>InitialFileName <\/b>durch die folgende Bedingung:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Len<\/span>(Me!txtDatei) = 0<span style=\"color:blue;\"> Then<\/span>\r\n     .InitialFileName = \"c:\\\"\r\n<span style=\"color:blue;\">Else<\/span>\r\n     .InitialFileName = Me!txtDatei\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<p>Diese pr&uuml;ft, ob das Textfeld <b>txtDatei <\/b>bereits einen Wert enth&auml;lt. Falls nicht, wird das Verzeichnis <b>c:\\ <\/b>als Startdatei angegeben. Falls ja, soll der Dialog direkt die bereits im Textfeld enthaltene Datei anzeigen.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag stellt die Klasse <b>FileDialog <\/b>vor und zeigt die verschiedenen M&ouml;glichkeiten zum Ausw&auml;hlen von vorhandenen Dateien, von zu speichernden beziehungsweise zu erstellenden Dateien, zur Mehrfachauswahl oder zum Ausw&auml;hlen von Verzeichnissen. Au&szlig;erdem erhalten Sie praktische Beispiele, die Sie in eigene Formulare &uuml;bernehmen k&ouml;nnen.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>DateienUndVerzeichnisseAuswaehlen.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/29A0C4AF-9E35-401A-A38D-4A627F688B47\/aiu_1345.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bereits seit einiger Zeit bietet die Office-Bibliothek das FileDialog-Objekt an. In fr&uuml;heren Versionen gab es dort einige Einschr&auml;nkungen, weshalb Programmierer gern auf Alternativen zur&uuml;ckgegriffen haben wie etwa die entsprechenden Funktionen der Windows-API oder auch die der nicht dokumentierten WizHook-Klasse. Irgendwann hat Microsoft jedoch auch f&uuml;r Access alle Funktionen der FileDialog-Klasse freigeschaltet, unter anderem auch das Ausw&auml;hlen von zu speichernden Dateien. Daher schauen wir uns in diesem Beitrag einmal an, welche M&ouml;glichkeiten die FileDialog-Klasse nun bietet und ob wir diese f&uuml;r unsere Zwecke nutzen k&ouml;nnen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022022,662022,44000025],"tags":[],"class_list":["post-55001345","post","type-post","status-publish","format-standard","hentry","category-66022022","category-662022","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog\" \/>\n<meta property=\"og:description\" content=\"Bereits seit einiger Zeit bietet die Office-Bibliothek das FileDialog-Objekt an. In fr&uuml;heren Versionen gab es dort einige Einschr&auml;nkungen, weshalb Programmierer gern auf Alternativen zur&uuml;ckgegriffen haben wie etwa die entsprechenden Funktionen der Windows-API oder auch die der nicht dokumentierten WizHook-Klasse. Irgendwann hat Microsoft jedoch auch f&uuml;r Access alle Funktionen der FileDialog-Klasse freigeschaltet, unter anderem auch das Ausw&auml;hlen von zu speichernden Dateien. Daher schauen wir uns in diesem Beitrag einmal an, welche M&ouml;glichkeiten die FileDialog-Klasse nun bietet und ob wir diese f&uuml;r unsere Zwecke nutzen k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-28T10:29:25+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog\",\"datePublished\":\"2023-04-28T10:29:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/\"},\"wordCount\":2336,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/0accc7b72db44868ae19bc2041d8257f\",\"articleSection\":[\"2\\\/2022\",\"2022\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/\",\"name\":\"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/0accc7b72db44868ae19bc2041d8257f\",\"datePublished\":\"2023-04-28T10:29:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/0accc7b72db44868ae19bc2041d8257f\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/0accc7b72db44868ae19bc2041d8257f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/","og_locale":"de_DE","og_type":"article","og_title":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog","og_description":"Bereits seit einiger Zeit bietet die Office-Bibliothek das FileDialog-Objekt an. In fr&uuml;heren Versionen gab es dort einige Einschr&auml;nkungen, weshalb Programmierer gern auf Alternativen zur&uuml;ckgegriffen haben wie etwa die entsprechenden Funktionen der Windows-API oder auch die der nicht dokumentierten WizHook-Klasse. Irgendwann hat Microsoft jedoch auch f&uuml;r Access alle Funktionen der FileDialog-Klasse freigeschaltet, unter anderem auch das Ausw&auml;hlen von zu speichernden Dateien. Daher schauen wir uns in diesem Beitrag einmal an, welche M&ouml;glichkeiten die FileDialog-Klasse nun bietet und ob wir diese f&uuml;r unsere Zwecke nutzen k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/","og_site_name":"Access im Unternehmen","article_published_time":"2023-04-28T10:29:25+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog","datePublished":"2023-04-28T10:29:25+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/"},"wordCount":2336,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f","articleSection":["2\/2022","2022","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/","url":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/","name":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f","datePublished":"2023-04-28T10:29:25+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/0accc7b72db44868ae19bc2041d8257f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Dateien_und_Verzeichnisse_auswaehlen_mit_FileDialog\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001345"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001345\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}