{"id":55000156,"date":"2012-12-01T00:00:00","date_gmt":"2020-01-24T15:58:21","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=156"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Dateibefehle","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Dateibefehle.html","title":{"rendered":"Dateibefehle"},"content":{"rendered":"<p class='introduction'>VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis &auml;ndern, Dateien l&ouml;schen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1206_Dateibefehle.mdb<\/b>.<\/p>\n<h2>Dateizugriffe<\/h2>\n<p>Der Artikel <b>Textdateien <\/b>stellt die M&ouml;glichkeiten zum Erstellen und zum Lesen von Textdateien vor. Dort gibt es eine Methode namens <b>Open<\/b>, die je nach Dateimodus eine bestehende Textdatei &ouml;ffnet oder eine neue Datei erstellt. Was hat das mit dem vorliegenden Artikel zu tun Ganz einfach: Die <b>Open<\/b>-Anweisung erwartet die Angabe des Dateinamens. Dabei k&ouml;nnen Sie w&auml;hlen zwischen der Angabe des Dateinamens inklusive Verzeichnis oder nur des Dateinamens. Wenn Sie das Verzeichnis mit angeben, ist genau definiert, auf welche Datei die <b>Open<\/b>-Anweisung sich beziehen soll. Falls aber wie im folgenden Beispiel nur ein Dateiname angeben wurde, ermittelt VBA selbst den Pfad:<\/p>\n<pre>Open \"Test.txt\" For Input<span style=\"color:blue;\"> As <\/span>#1<\/pre>\n<h2>Aktuelles Verzeichnis ermitteln<\/h2>\n<p>Und woher bezieht VBA den Ort der betroffenen Datei Dieser wird intern gespeichert und kann &uuml;ber die Funktion <b>CurDir <\/b>ausgelesen werden. Ein Aufruf im Direktfenster des VBA-Editors sieht beispielsweise wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> CurDir\r\nC:\\Users\\Andre\\Documents<\/pre>\n<p>Das bedeutet, dass die <b>Open<\/b>-Anweisung dem Dateinamen ohne Angabe eines Verzeichnisses die intern gespeicherte und mit <b>CurDir <\/b>zu ermittelnde Pfadbezeichnung voranstellt.<\/p>\n<h2>Aktuelles Verzeichnis &auml;ndern<\/h2>\n<p>Wenn sich die Dateioperationen innerhalb einer Anwendung immer auf das gleiche Verzeichnis beziehen, ist es sinnvoll, dieses Verzeichnis an die eigenen Bed&uuml;rfnisse anzupassen. Da trifft es sich gut, dass VBA mit <b>ChDir <\/b>auch eine Funktion zum Festlegen eines neuen aktuellen Verzeichnisses liefert. Sie k&ouml;nnen den Wert von <b>CurDir <\/b>beispielsweise auf den Pfad zur aktuell ge&ouml;ffneten Datenbank einstellen:<\/p>\n<pre>ChDir Currentproject.Path<\/pre>\n<p>Die anschlie&szlig;ende Pr&uuml;fung liefert das erwartete Ergebnis:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> CurDir\r\nC:\\Daten\\Fachartikel\\AiUBasic\\Basics\\2012\\06\\Dateibefehle<\/pre>\n<p><b>CurDir <\/b>liefert f&uuml;r jedes Laufwerk ein eigenes aktuelles Verzeichnis. Um das aktuelle Verzeichnis eines anderen Laufwerks als <b>c:\\ <\/b>zu ermitteln, geben Sie den Laufwerksbuchstaben in Anf&uuml;hrungszeichen als Parameter der <b>CurDir<\/b>-Funktion an:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> CurDir(\"h\")\r\nh:\\Daten<\/pre>\n<p>Wenn Sie das aktuelle Verzeichnis f&uuml;r ein bestimmtes Laufwerk &auml;ndern m&ouml;chten, geben Sie einfach den kompletten Pfad samt Laufwerksbuchstaben an:<\/p>\n<pre>ChDir(\"h:\\Daten\\Accessprojekte\")<\/pre>\n<p>Wie die folgende Pr&uuml;fung ergibt, funktioniert es:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> CurDir(\"h\")\r\nh:\\Daten\\Accessprojekte<\/pre>\n<p><b>CurDir <\/b>liefert ohne Parameter standardm&auml;&szlig;ig das aktuelle Verzeichnis des Laufwerks <b>c:\\<\/b>. Wenn Sie m&ouml;chten, dass <b>CurDir <\/b>ohne Parameter das aktuelle Verzeichnis eines anderen Laufwerks liefert, stellen Sie das Standardlaufwerk entsprechend mit der Funktion <b>ChDrive <\/b>ein:<\/p>\n<pre>ChDrive \"h\"<\/pre>\n<p><b>CurDir <\/b>liefert dann Folgendes:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> CurDir\r\nh:\\Daten\\Accessprojekte<\/pre>\n<h2>Dateien l&ouml;schen<\/h2>\n<p>W&auml;hrend die im Artikel <b>Textdateien <\/b>vorgestellte <b>Open<\/b>-Anweisung nicht nur zum &ouml;ffnen, sondern auch zum Anlegen von Textdateien genutzt werden kann, fehlt noch ein Pendant zum L&ouml;schen von Dateien &#8211; in diesem Fall nicht nur von Textdateien. Diese Methode hei&szlig;t <b>Kill<\/b>. Diese Methode erwartet lediglich den Dateinamen als Parameter:<\/p>\n<pre>Kill CurrentProject.Path & \"\\test.txt\"<\/pre>\n<p>Wenn Sie keinen Pfad angeben, verwendet auch die <b>Kill<\/b>-Methode das mit <b>CurDir <\/b>ermittelte Verzeichnis. <\/p>\n<h2>Verzeichnis erstellen<\/h2>\n<p>Neue Verzeichnisse erstellen Sie mit der Methode <b>MkDir<\/b>. Wenn Sie <b>MkDir <\/b>nur den Namen des zu erstellenden Verzeichnisses &uuml;bergeben, also etwa wie im folgenden Aufruf, erzeugt VBA &#8211; Sie ahnen es bereits &#8211; das neue Verzeichnis im mit <b>CurDir <\/b>zu ermittelnden aktuellen Verzeichnis:<\/p>\n<pre>MkDir \"Test\"<\/pre>\n<p>Obiger Aufruf w&uuml;rde also das Verzeichnis <b>c:\\Daten\\Test <\/b>erzeugen, wenn <b>CurDir <\/b>das Verzeichnis <b>c:\\Daten <\/b>liefert. Dabei k&ouml;nnen &uuml;brigens kaum Fehler auftreten &#8211; im Gegensatz zur Variante mit Angabe des Verzeichnisses. Wenn Sie beispielsweise zwei verschachtelte Unterverzeichnisse namens <b>Test1 <\/b>und <b>Test2 <\/b>unter <b>c:\\Daten <\/b>erzeugen m&ouml;chten, gelingt dies nicht in einem einzigen Schritt &#8211; Sie erhalten dann n&auml;mlich den Fehler aus Bild 1.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_156_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_156_001.png\" alt=\"Fehler beim Versuch, zwei Verzeichnisse auf einmal zu erstellen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Fehler beim Versuch, zwei Verzeichnisse auf einmal zu erstellen<\/p>\n<p>Stattdessen erledigen Sie diese Aufgabe in zwei Schritten:<\/p>\n<pre>MkDir \"c:\\Daten\\Test1\"\r\nMkDir \"c:\\Daten\\Test1\\Test2\"<\/pre>\n<h2>L&ouml;schen von Verzeichnissen<\/h2>\n<p>Das L&ouml;schen eines Verzeichnisses erledigen Sie mit der <b>RmDir<\/b>-Methode. Auch diese erlaubt nur das L&ouml;schen eines Verzeichnisses gleichzeitig, genau genommen sogar nur das L&ouml;schen leerer Verzeichnisse.<\/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\/55000156\/\">\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\/55000156?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\/55000156\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"a4912ba1e1\"\/>\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>VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis &auml;ndern, Dateien l&ouml;schen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.<\/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,66062012,44000011],"tags":[],"class_list":["post-55000156","post","type-post","status-publish","format-standard","hentry","category-662012","category-66062012","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>Dateibefehle - Access [basics]<\/title>\n<meta name=\"description\" content=\"VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis \u00e4ndern, Dateien l\u00f6schen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dateibefehle - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis \u00e4ndern, Dateien l\u00f6schen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Dateibefehle.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_156_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=\"10\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\/Dateibefehle.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_156_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html\",\"name\":\"Dateibefehle - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.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\":\"VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis \\u00e4ndern, Dateien l\\u00f6schen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.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\/Dateibefehle.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Dateibefehle.html\",\"name\":\"Dateibefehle\"}}]},{\"@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\/55000156","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=55000156"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000156\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}