{"id":55000099,"date":"2012-02-01T00:00:00","date_gmt":"2020-01-24T15:58:05","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=99"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Arrays","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Arrays.html","title":{"rendered":"Arrays"},"content":{"rendered":"<p class='introduction'>Arrays &#8211; auch Datenfelder genannt &#8211; bieten die M&ouml;glichkeit, mehrere gleichartige Daten in einer Art Liste zu speichern und &uuml;ber einen Index darauf zuzugreifen. Array k&ouml;nnen ein- oder mehrdimensional sein. Dieser Artikel zeigt, wie Sie Arrays deklarieren, diese mit Daten f&uuml;llen und die gew&uuml;nschten Informationen wieder abrufen. Au&szlig;erdem lernen Sie eine Reihe VBA-Anweisungen kennen, mit denen der Umgang mit Arrays noch viel leichter wird.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1201_Arrays.mdb<\/b>.<\/p>\n<h2>Array-Datentyp<\/h2>\n<p>Ein Array kann beliebige Datentypen annehmen. Die einzige Einschr&auml;nkung ist: Jedes Element des Array muss den gleichen Datentyp besitzen. Dies ist jedoch keine gro&szlig;e Einschr&auml;nkung, denn die meisten Anwendungen von Array basieren ohnehin auf gleichartigen Daten.<\/p>\n<h2>Einfache Beispiele<\/h2>\n<p>Im einfachsten Fall ist ein Array zweidimensional. Das bedeutet, dass Sie f&uuml;r jeden Indexwert des Array entsprechend seiner Gr&ouml;&szlig;e einen Wert im Array speichern k&ouml;nnen.<\/p>\n<p>Wof&uuml;r ben&ouml;tigt man solche Konstrukte Nun, Sie k&ouml;nnten zum Beispiel zehn gleichartige Werte ben&ouml;tigen, die Sie in entsprechenden Variablen speichern &#8211; etwa so:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>str1<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>str2<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>str3<span style=\"color:blue;\"> As String<\/span>\r\n...\r\nstr1 = \"M&uuml;ller\"\r\nstr2 = \"Meier\"\r\nstr3 = \"Schmitz\"<\/pre>\n<p>Mit diesen Variablen k&ouml;nnen Sie nun verschiedene Dinge im Code anstellen. Dies hat nur zwei Nachteile: Erstens m&uuml;ssen Sie jeden Zugriff auf einen dieser Werte separat durchf&uuml;hren, auch wenn Sie mal eben die Werte aller Variablen ausgeben m&ouml;chten. Mal eben die Daten aus einer Tabelle in die Variablen schreiben Macht zehn Anweisungen. Die Daten im Debug-Fenster ausgeben Wieder zehn Anweisungen. Und der zweite Nachteil: Wenn ein elfter Wert hinzu kommt, m&uuml;ssen Sie den kompletten Code anpassen.<\/p>\n<p>F&uuml;r solche F&auml;lle gibt es Array. F&uuml;r ein Array ben&ouml;tigen Sie nur ein einzige Variable, die beliebig viele Werte aufnimmt. Sie k&ouml;nnen gleich bei der Deklaration festlegen, wieviele Werte dies sind oder die Obergrenze sp&auml;ter anpassen.<\/p>\n<p>Schauen wir uns an, wie dies funktioniert. Wenn Sie beispielsweise eine Variable mit vier Werten verwenden m&ouml;chten, deklarieren Sie diese wie folgt:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>strZahlen(3)<\/pre>\n<p>Wieso lautet der Wert in Klammern <b>3<\/b>, wenn wir doch drei Werte ben&ouml;tigen Ganz einfach: Der hier angegebene Wert gibt den Wert des gr&ouml;&szlig;ten Index-Eintrags an. Normalerweise beginnt die Z&auml;hlung des Index bei Arrays bei <b>0<\/b>, also k&ouml;nnen Sie die vier Indexwerte <b>0<\/b>, <b>1<\/b>, <b>2 <\/b>und <b>3 <\/b>verwenden.<\/p>\n<p>In der folgenden Prozedur versuchen wir, mehr als diese vier Eintr&auml;ge zu f&uuml;llen:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EinfachesArray()\r\n     <span style=\"color:blue;\">Dim <\/span>strZahlen(3)<span style=\"color:blue;\"> As String<\/span>\r\n     strZahlen(0) = \"Null\"\r\n     strZahlen(1) = \"Eins\"\r\n     strZahlen(2) = \"Zwei\"\r\n     strZahlen(3) = \"Drei\"\r\n     strZahlen(4) = \"Vier\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies f&uuml;hrt zu dem Fehler aus Bild 1, und zwar in der Zeile, die versucht, einen Wert f&uuml;r den Index <b>4 <\/b>zu vergeben.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_99_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_99_001.png\" alt=\"Fehler beim Versuch, einen nicht vorhandenen Eintrag im Array zu referenzieren\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Fehler beim Versuch, einen nicht vorhandenen Eintrag im Array zu referenzieren<\/p>\n<p>Die Tatsache, dass der erste Indexwert <b>0 <\/b>lautet, ist nicht unumst&ouml;&szlig;lich. Wenn Sie im Kopf des betroffenen VBA-Moduls die folgende Zeile einf&uuml;gen, beginnt die Z&auml;hlung bei <b>1<\/b>:<\/p>\n<pre>Option Base 1<\/pre>\n<p>Der Fehler bei der obigen Prozedur tritt nun nicht erst in der vierten, sondern direkt in der ersten Zeile auf: den Index mit dem Wert <b>0 <\/b>gibt es n&auml;mlich nun nicht mehr. Normalerweise ben&ouml;tigen Sie aber keine Index-&auml;nderung &#8211; es sei denn, Sie m&ouml;chten Daten zwischen einem Array und einem anderen Objekt hin- und hertransferieren, dessen Index erst bei 1 beginnt. Dann k&ouml;nnen Sie besser den kleinsten Index mit <b>Option Base <\/b>festlegen als &uuml;berall 1 abzuziehen oder hinzuzuaddieren, um mit gleichen Indexwerten arbeiten zu k&ouml;nnen.<\/p>\n<h2>Indexbereich<\/h2>\n<p>Sie k&ouml;nnen sich auch komplett von den vom System oder von <b>Option Base <\/b>vorgegebenen Index-Grenzen freimachen. Dazu geben Sie einfach eigene Indexgrenzen an &#8211; die folgende Routine l&auml;uft dann ohne Fehler durch:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EinfachesArrayMitBereich()\r\n     <span style=\"color:blue;\">Dim <\/span>strZahlen(0 To 4)<span style=\"color:blue;\"> As String<\/span>\r\n     strZahlen(0) = \"Null\"\r\n     strZahlen(1) = \"Eins\"\r\n     strZahlen(2) = \"Zwei\"\r\n     strZahlen(3) = \"Drei\"\r\n     strZahlen(4) = \"Vier\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Eigentlich ist die Angabe des Indexbereichs ohnehin die sinnvollste Art, ein Array zu deklarieren &#8211; vorausgesetzt, Sie kennen die Dimensionen des Arrays  &uuml;berhaupt bereits beim Deklarieren.<\/p>\n<h2>Ein- und mehrdimensionale Array<\/h2>\n<p>Die bisher vorgestellten Beispiele basierten auf eindimensionalen Array. Ein Array kann aber durchaus mehrere Dimensionen annehmen.<\/p>\n<p>Wenn Sie beispielsweise ein Array mit zwei mal zwei Elementen deklarieren und mit entsprechenden Werten f&uuml;llen m&ouml;chten, verwenden Sie die folgende Routine:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>ZweiMalZwei()\r\n     <span style=\"color:blue;\">Dim <\/span>intZahlen(1 To 2, 1 To 2)<span style=\"color:blue;\"> As Integer<\/span>\r\n     intZahlen(1, 1) = 1\r\n     intZahlen(1, 2) = 2\r\n     intZahlen(2, 1) = 3\r\n     intZahlen(2, 2) = 4\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Arrays durchlaufen<\/h2>\n<p>Wenn Sie die Indexgrenzen eines Array kennen, k&ouml;nnen Sie die im Array gespeicherten Werte problemlos mithilfe einer Schleife durchlaufen.<\/p>\n<p>Dazu verwenden Sie einfach eine <b>For&#8230;Next<\/b>-Schleife mit einer Laufvariable, die Sie sp&auml;ter als Index f&uuml;r den Zugriff auf die im Array gespeicherten Werte verwenden:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EinfachesArrayMitBereich()\r\n     <span style=\"color:blue;\">Dim <\/span>strZahlen(0 To 4)<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     strZahlen(0) = \"Null\"\r\n     ... weitere Zuweisungen\r\n     For i = 0 To 4\r\n         <span style=\"color:blue;\">Debug.Print<\/span> strZahlen(i)\r\n     <span style=\"color:blue;\">Next<\/span> i\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Indexgrenzen ermitteln<\/h2>\n<p>Auch wenn Sie die Indexgrenzen nicht kennen, k&ouml;nnen Sie ein Array problemlos durchlaufen. Die Grenzen ermitteln Sie dabei mit den beiden Funktionen <b>UBound <\/b>und <b>LBound<\/b>, denen Sie einfach den Namen der Array-Variablen &uuml;bergeben:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>IndexgrenzenErmitteln()\r\n     <span style=\"color:blue;\">Dim <\/span>strZahlen(3)<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     strZahlen(0) = \"Null\"\r\n     ... weitere Zuweisungen\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"Untere Grenze: \" & <span style=\"color:blue;\">LBound<\/span>(strZahlen)\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"Obere Grenze: \" & <span style=\"color:blue;\">UBound<\/span>(strZahlen)\r\n     For i = <span style=\"color:blue;\">LBound<\/span>(strZahlen) To <span style=\"color:blue;\">UBound<\/span>(strZahlen)\r\n         <span style=\"color:blue;\">Debug.Print<\/span> strZahlen(i)\r\n     <span style=\"color:blue;\">Next<\/span> i\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Indexgrenzen zur Laufzeit einstellen<\/h2>\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\/55000099\/\">\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\/55000099?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\/55000099\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"8d63f6cbe9\"\/>\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>Arrays &#8211; auch Datenfelder genannt &#8211; bieten die M&ouml;glichkeit, mehrere gleichartige Daten in einer Art Liste zu speichern und &uuml;ber einen Index darauf zuzugreifen. Array k&ouml;nnen ein- oder mehrdimensional sein. Dieser Artikel zeigt, wie Sie Arrays deklarieren, diese mit Daten f&uuml;llen und die gew&uuml;nschten Informationen wieder abrufen. Au&szlig;erdem lernen Sie eine Reihe VBA-Anweisungen kennen, mit denen der Umgang mit Arrays noch viel leichter wird.<\/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":[66012012,662012],"tags":[],"class_list":["post-55000099","post","type-post","status-publish","format-standard","hentry","category-66012012","category-662012"],"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>Arrays - Access [basics]<\/title>\n<meta name=\"description\" content=\"Arrays \u2013 auch Datenfelder genannt \u2013 bieten die M\u00f6glichkeit, mehrere gleichartige Daten in einer Art Liste zu speichern und \u00fcber einen Index darauf zuzugreifen. Array k\u00f6nnen ein- oder mehrdimensional sein. Dieser Artikel zeigt, wie Sie Arrays deklarieren, diese mit Daten f\u00fcllen und die gew\u00fcnschten Informationen wieder abrufen. Au\u00dferdem lernen Sie eine Reihe VBA-Anweisungen kennen, mit denen der Umgang mit Arrays noch viel leichter wird.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Arrays.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arrays - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Arrays \u2013 auch Datenfelder genannt \u2013 bieten die M\u00f6glichkeit, mehrere gleichartige Daten in einer Art Liste zu speichern und \u00fcber einen Index darauf zuzugreifen. Array k\u00f6nnen ein- oder mehrdimensional sein. Dieser Artikel zeigt, wie Sie Arrays deklarieren, diese mit Daten f\u00fcllen und die gew\u00fcnschten Informationen wieder abrufen. Au\u00dferdem lernen Sie eine Reihe VBA-Anweisungen kennen, mit denen der Umgang mit Arrays noch viel leichter wird.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Arrays.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:05+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_99_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=\"12\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\/Arrays.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_99_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Arrays.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Arrays.html\",\"name\":\"Arrays - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Arrays.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:05+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Arrays \\u2013 auch Datenfelder genannt \\u2013 bieten die M\\u00f6glichkeit, mehrere gleichartige Daten in einer Art Liste zu speichern und \\u00fcber einen Index darauf zuzugreifen. Array k\\u00f6nnen ein- oder mehrdimensional sein. Dieser Artikel zeigt, wie Sie Arrays deklarieren, diese mit Daten f\\u00fcllen und die gew\\u00fcnschten Informationen wieder abrufen. Au\\u00dferdem lernen Sie eine Reihe VBA-Anweisungen kennen, mit denen der Umgang mit Arrays noch viel leichter wird.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Arrays.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Arrays.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Arrays.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\/Arrays.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Arrays.html\",\"name\":\"Arrays\"}}]},{\"@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\/55000099","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=55000099"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000099\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}