{"id":55000158,"date":"2013-02-01T00:00:00","date_gmt":"2020-01-24T15:58:21","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=158"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Die_DirFunktion","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html","title":{"rendered":"Die Dir-Funktion"},"content":{"rendered":"<p class='introduction'>Die Dir-Funktion ist ein echter Tausendsassa: Sie erm&ouml;glicht sowohl das Pr&uuml;fen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erkl&auml;rbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion f&uuml;r verschiedene Anwendungszwecke einsetzen.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1207_Dir.mdb<\/b>.<\/p>\n<h2>Vorhandensein von Verzeichnissen oder Dateien pr&uuml;fen<\/h2>\n<p>Ein einfacher Aufruf der <b>Dir<\/b>-Funktion, beispielsweise im Direktfenster des VBA-Editors abgesetzt (zu &ouml;ffnen mit <b>Strg + G<\/b>, siehe Bild 1), l&ouml;st einen Fehler aus:<\/p>\n<pre> Dir()<\/pre>\n<p>Und das, obwohl IntelliSense die Parameter dieser Funktion bei der Eingabe im Direktfenster in eckigen Klammern anzeigt, was schlicht bedeutet, dass es sich dabei um optionale Parameter handelt (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_158_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_158_001.png\" alt=\"IntelliSense zeigt die Parameter als optional an\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: IntelliSense zeigt die Parameter als optional an<\/p>\n<p>Der Grund ist, dass diese Funktion zumindest beim ersten Aufruf einen Ausdruck f&uuml;r den ersten Parameter erwartet. Hier geben Sie im einfachsten Fall eine leere Zeichenkette an:<\/p>\n<p> Dir(&#8222;&#8220;)<\/p>\n<p>Dies liefert die erste Datei des aktuellen Verzeichnisses. Welches Verzeichnis hiermit gemeint ist, erfahren Sie durch den Aufruf der Funktion <b>CurDir<\/b>. Dies liefert beispielsweise folgendes Ergebnis:<\/p>\n<pre>  CurDir\r\nC:\\Users\\Andre\\Documents<\/pre>\n<p>Auf das in <b>CurDir <\/b>hinterlegte Verzeichnis sollten Sie sich jedoch nicht verlassen, sondern stattdessen explizit angeben, auf welches Verzeichnis oder auf welche Datei sich die <b>Dir<\/b>-Funktion beziehen soll (Sie k&ouml;nnen nat&uuml;rlich auch die <b>ChDir<\/b>-Funktion nutzen, um das aktuelle Verzeichnis festzulegen).<\/p>\n<p>Wenn Sie pr&uuml;fen m&ouml;chten, ob ein Verzeichnis oder eine Datei existiert, geben Sie den Verzeichnis- oder Dateinamen inklusive Pfad als Parameter an. Um zum Beispiel herauszufinden, ob eine Datei existiert, geben Sie den kompletten Pfad wie folgt an:<\/p>\n<pre> Dir(\"c:\\Test.txt\")<\/pre>\n<p>Sollte es eine entsprechende Datei im Verzeichnis <b>c:\\ <\/b>geben, liefert diese Funktion den Namen der Datei ohne Pfad als Ergebnis, also etwa <b>Text.txt<\/b>.<\/p>\n<p>Wenn Sie hingegen die Existenz eines Verzeichnisses pr&uuml;fen m&ouml;chten, m&uuml;ssen Sie zus&auml;tzlich den Wert <b>vbDirectory <\/b>f&uuml;r den zweiten Parameter der <b>Dir<\/b>-Funktion &uuml;bergeben:<\/p>\n<pre>  Dir(CurrentProject.Path, vbDirectory)\r\nVBA_Dir<\/pre>\n<p>Da <b>CurrentProject.Path <\/b>in diesem Fall den Wert <b>C:\\Daten\\Fachartikel\\AiUBasic\\Basics\\2012\\07\\VBA_Dir <\/b>enth&auml;lt, liefert die Funktion den Namen des aktuellen Verzeichnisses zur&uuml;ck, also <b>VBA_Dir<\/b>.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000158\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000158?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000158\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"2c6d4a5d32\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Dir-Funktion ist ein echter Tausendsassa: Sie erm&ouml;glicht sowohl das Pr&uuml;fen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erkl&auml;rbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion f&uuml;r verschiedene Anwendungszwecke einsetzen.<\/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":[662012,66072012,44000011],"tags":[],"class_list":["post-55000158","post","type-post","status-publish","format-standard","hentry","category-662012","category-66072012","category-VBAGrundlagen"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Die Dir-Funktion - Access [basics]<\/title>\n<meta name=\"description\" content=\"Die Dir-Funktion ist ein echter Tausendsassa: Sie erm\u00f6glicht sowohl das Pr\u00fcfen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erkl\u00e4rbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion f\u00fcr verschiedene Anwendungszwecke einsetzen.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die Dir-Funktion - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Die Dir-Funktion ist ein echter Tausendsassa: Sie erm\u00f6glicht sowohl das Pr\u00fcfen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erkl\u00e4rbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion f\u00fcr verschiedene Anwendungszwecke einsetzen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_158_001.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"5\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_158_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\",\"name\":\"Die Dir-Funktion - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:21+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Die Dir-Funktion ist ein echter Tausendsassa: Sie erm\\u00f6glicht sowohl das Pr\\u00fcfen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erkl\\u00e4rbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion f\\u00fcr verschiedene Anwendungszwecke einsetzen.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Die_DirFunktion.html\",\"name\":\"Die Dir-Funktion\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000158"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000158\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}