{"id":55000240,"date":"2014-08-01T00:00:00","date_gmt":"2020-01-24T15:59:09","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=240"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Datenmakros_II_Datenoperationen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html","title":{"rendered":"Datenmakros II: Datenoperationen"},"content":{"rendered":"<p class='introduction'>Datenmakros und benannte Makros liefern vor allem die interessante M&ouml;glichkeit, grundlegende Datenoperationen durchzuf&uuml;hren &#8211; also beispielsweise das Anlegen neuer Datens&auml;tze, das Bearbeiten oder L&ouml;schen vorhandener Datens&auml;tze, das Durchlaufen von Datensatzgruppen oder das Auffinden bestimmter Datens&auml;tze. Prinzipiell bilden Sie damit die Basisoperationen der DAO-Bibliothek auf Makro-Ebene ab. Dieser Artikel stellt die Datenoperationen im Detail vor.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1402_Makros.mdb<\/b>.<\/p>\n<h2>Datenoperationen<\/h2>\n<p>Die neuen Datenmakros sollen es vor allem erm&ouml;glichen, endlich auch per Makro einfache Datenoperationen auszuf&uuml;hren &#8211; also etwa einen neuen Datensatz anzulegen, vorhandene Datens&auml;tze zu &auml;ndern und zu l&ouml;schen oder auch einfach auf die Felder eines Datensatzes zuzugreifen.<\/p>\n<p>Diese Operationen bilden Sie typischerweise unter VBA ab &#8211; und zwar mit dem <b>Recordset<\/b>-Objekt und Befehlen wie <b>AddNew<\/b>, <b>Edit<\/b>, <b>Update <\/b>oder <b>FindFirst<\/b>.<\/p>\n<p>Zu Testzwecken haben wir eine kleine Tabelle namens <b>tblKunden <\/b>angelegt, die allerdings nur das Prim&auml;rschl&uuml;sselfeld <b>KundeID<\/b>, das Fremdschl&uuml;sselfeld <b>AnredeID <\/b>sowie die beiden Textfelder <b>Vorname <\/b>und <b>Nachname <\/b>enth&auml;lt (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_009.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_009.png\" alt=\"Beispieltabelle f&uuml;r Testzwecke\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Beispieltabelle f&uuml;r Testzwecke<\/p>\n<p>Wenn Sie nun beispielsweise einen neuen Datensatz in der Tabelle anlegen m&ouml;chten, ben&ouml;tigen Sie ein benanntes Makro f&uuml;r diese Tabelle. Dieses legen Sie bei in der Datenblattansicht ge&ouml;ffneter Tabelle &uuml;ber den Ribbonbefehl <b>Ta-bel-le|Be-nannte Makros|Be-nanntes Ma-kro|Be-nanntes Makro erstellen<\/b> an.<\/p>\n<p>In diesem Makro f&uuml;gen Sie nun zun&auml;chst den Befehl <b>Datensatz erstellen in <\/b>ein und w&auml;hlen die Tabelle <b>tblKunden <\/b>als Ziel der Aktion aus.<\/p>\n<p>Dieser Aktion k&ouml;nnen Sie weitere Befehle unterordnen, und zwar <b>Gruppieren<\/b>, <b>Kommentar<\/b>, <b>Wenn<\/b>, <b>AbbrechenDatensatz&auml;nderung<\/b>, <b>FestlegenFeld <\/b>und <b>FestlegenLokaleVar<\/b>.<\/p>\n<p>In diesem Fall wollen wir die drei Felder <b>AnredeID<\/b>, <b>Vorname <\/b>und <b>Nachname <\/b>mit den entsprechenden Werten f&uuml;llen. Dies erledigen wir, indem wir drei Mal die Makroaktion <b>FestlegenFeld <\/b>hinzuf&uuml;gen, unter <b>Name <\/b>das Zielfeld ausw&auml;hlen und unter <b>Wert <\/b>den einzutragenden Wert angeben (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_010.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_010.png\" alt=\"Datenmakro zum Anlegen eines neuen Datensatzes in der Tabelle tblKunden\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Datenmakro zum Anlegen eines neuen Datensatzes in der Tabelle tblKunden<\/p>\n<p>Dabei ist zu beachten, dass Sie Literale in Anf&uuml;hrungszeichen einfassen. Anderenfalls sucht Access nach einem entsprechenden Ausdruck und l&ouml;st einen Fehler aus.<\/p>\n<p>Dieses Makro soll nun also einen Datensatz zur Tabelle <b>tblKunden <\/b>hinzuf&uuml;gen. Aber wie rufen wir das Makro auf Dazu ben&ouml;tigen wir ein weiteres Makro, dem wir die Makroaktion <b>Ausf&uuml;hrenDatenmakro <\/b>zuweisen. Diese erwartet als Parameter den Namen des aufzurufenden Datenmakros mit f&uuml;hrendem Tabellennamen, also hier <b>tblKunden.dmkKundeAnlegen <\/b>(siehe Bild 3). Ein erster Testaufruf des Makros <b>makKundeAnlegen <\/b>bringt das gew&uuml;nschte Ergebnis &#8211; der Datensatz wird angelegt.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_011.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_011.png\" alt=\"Dieses Makro ruft das Datenmakro zum Anlegen eines Kundendatensatzes auf.\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Dieses Makro ruft das Datenmakro zum Anlegen eines Kundendatensatzes auf.<\/p>\n<h2>Datenmakro mit Parametern<\/h2>\n<p>Als N&auml;chstes wollen wir das doch recht statische Makro etwas dynamischer gestalten &#8211; und zwar, indem wir die in die Tabelle <b>tblKunden <\/b>einzuf&uuml;genden Werte per Parameter &uuml;bergeben.<\/p>\n<p>Dazu erstellen wir ein weiteres benanntes Makro f&uuml;r die Tabelle <b>tblKunden<\/b>. Diesmal klicken wir jedoch zun&auml;chst drei Mal auf den Text <b>Parameter erstellen <\/b>oben rechts im Makro-Entwurf und erzeugen so drei Zeilen zur Eingabe von Parametern. Diese nennen wir <b>prmAnredeID<\/b>, <b>prmVorname <\/b>und <b>prmNachname<\/b>.<\/p>\n<p>Nun f&uuml;gen Sie wieder die Makroaktion <b>Datensatz erstellen in <\/b>hinzu, legen die Tabelle <b>tblKunden <\/b>als Ziel fest und tragen unterhalb dieser Makroaktion drei Mal den Befehl <b>FestlegenFeld <\/b>ein. Die Feldnamen lauten wieder wie im vorherigen Beispiel. Allerdings geben wir diesmal nicht direkt die einzuf&uuml;genden Werte an, sondern die Namen der weiter oben definierten Parameter &#8211; also etwa den Parameter <b>prmAnredeID <\/b>f&uuml;r das Feld <b>AnredeID<\/b>. Die Parameter lassen sich bequem per IntelliSense aus der Liste der verf&uuml;gbaren Elemente ausw&auml;hlen (siehe Bild 4).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_012.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_012.png\" alt=\"Benanntes Makro mit Parametern\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Benanntes Makro mit Parametern<\/p>\n<p>Nun folgt der zweite Teil: die Definition des Makros, mit dem wir das Datenmakro aufrufen und diesem die Werte f&uuml;r die Parameter &uuml;bergeben.<\/p>\n<p>Dazu erstellen Sie ein neues Makro namens <b>macKundeAnlegenMitParameter <\/b>und f&uuml;gen diesem wieder die Makroaktion <b>Ausf&uuml;hrenDatenmakro <\/b>hinzu (siehe Bild 5). Diesmal w&auml;hlen Sie das Makro <b>tblKunden.dmkKundeAnlegenMitParameter <\/b>f&uuml;r den Parameter <b>Makroname <\/b>aus. Nach der Auswahl des auszuf&uuml;hrenden Makros erscheinen gleich die drei f&uuml;r das benannte Makro definierten Parameter. Hier geben wir wieder die gew&uuml;nschten Werte ein (Anf&uuml;hrungszeichen bei Zeichenketten nicht vergessen) und f&uuml;hren das Makro dann aus. Es funktioniert &#8211; auch dies legt den Datensatz mit den angegebenen Daten an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_013.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_013.png\" alt=\"Aufruf eines benannten Makros mit Parametern\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Aufruf eines benannten Makros mit Parametern<\/p>\n<h2>Parameter per VBA &uuml;bergeben<\/h2>\n<p>Nun m&ouml;chten wir aber vielleicht das benannte Makro per VBA aufrufen. Wie &uuml;bergeben wir die notwendigen Parameter mit der Methode <b>RunDataMacro<\/b> Der Versuch, dieses einfach ohne Angabe von Parametern aufzurufen, f&uuml;hrt direkt zu einem Laufzeitfehler (siehe Bild 6).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_020.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_020.png\" alt=\"Aufruf eines Datenmakros ohne Angabe der Parameter\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 6: Aufruf eines Datenmakros ohne Angabe der Parameter<\/p>\n<p>Die Antwort lautet: Wir &uuml;bergeben die Parameter gar nicht mit dieser Methode. Stattdessen legen wir die Parameter vorher fest, und zwar mit einer eigenen <b>DoCmd<\/b>-Methode. Das sieht dann f&uuml;r dieses Beispiel wie in Bild 7 aus. Wichtig ist an dieser Stelle, dass Sie Zeichenketten nicht nur in Anf&uuml;hrungszeichen, sondern zus&auml;tzlich in Hochkommata einfassen (oder zus&auml;tzliche doppelte Anf&uuml;hrungszeichen: <b>&#8222;&#8220;&#8220;Maria&#8220;&#8220;&#8220;<\/b>).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_021.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_021.png\" alt=\"Vorherige Angabe der Parameter\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 7: Vorherige Angabe der Parameter<\/p>\n<p>Nach dem Aufruf der drei <b>DoCmd.SetParameter<\/b>-Anweisungen sowie der <b>RunDataMacro<\/b>-Methode wird der neue Datensatz in der Tabelle <b>tblKunden <\/b>angelegt. Anzumerken ist noch, dass die mit <b>SetParameter <\/b>gesetzten Parameter mit dem Aufruf der <b>RunDataMacro<\/b>-Methode geleert werden, sodass ein erneuter Aufruf des benannten Makros einen Fehler ausl&ouml;st.<\/p>\n<h2>DLookup im Makro<\/h2>\n<p>Nun erh&ouml;hen wir den Schwierigkeitsgrad: Ein neues benanntes Makro soll nur die Anrede, aber nicht den Prim&auml;rschl&uuml;sselwert des entsprechenden Datensatzes in der Tabelle <b>tblAnreden <\/b>als Parameter erhalten. Das hei&szlig;t, dass das benannte Makro selbst die <b>AnredeID <\/b>f&uuml;r die angegebene Anrede ermitteln muss.<\/p>\n<p>Das ist eigentlich recht einfach &#8211; wenn man wei&szlig;, auf welche Kleinigkeiten man achten muss. In diesem Fall erstellen Sie wiederum ein neues benanntes Makro f&uuml;r die Tabelle <b>tblKunden<\/b>. Diesmal geben Sie statt des Parameters <b>prmAnredeID <\/b>den Parameter <b>prmAnrede <\/b>an &#8211; es soll also nicht mehr direkt die <b>AnredeID <\/b>&uuml;bergeben werden, sondern die Bezeichnung der Anrede.<\/p>\n<p>Um die <b>AnredeID <\/b>aus der Tabelle <b>tblAnreden <\/b>zu ermitteln, gehen wir wie folgt vor: Zun&auml;chst legen Sie im benannten Makro <b>dmcKundeAnlegenMitAnrede <\/b>die Makroaktion <b>Datensatz nachschlagen in <\/b>an. Dieser weisen Sie als Quelle die Tabelle <b>tblAnreden <\/b>zu. Die erste H&uuml;rde, die den meisten etwas Kopfzerbrechen bereiten d&uuml;rfte, ist die Formulierung der Bedingung, die genau den Datensatz mit der angegebenen Anrede liefert. Intuitiv w&uuml;rde man hier einen Ausdruck wie den folgenden unterbringen:<\/p>\n<pre>=\"Anrede = '\" & prmAnrede & \"'\"<\/pre>\n<p>Dieser Versuch misslingt jedoch. An dieser Stelle ist dann guter Rat teuer. Wie soll ich ohne meine gewohnten VBA-Werkzeuge mal eben debuggen und beispielsweise herausfinden, welches Ergebnis mir der hier verwendete Ausdruck liefert Aber das ist kein Problem: Es gibt ja die Makroaktion <b>ProtokollierenEreignis<\/b>, mit dem wir einen beliebigen Ausdruck in die Tabelle <b>USysApplicationLog <\/b>eintragen k&ouml;nnen. Also verwenden wir diesen wie in Bild 8 und lassen uns das Ergebnis des ermittelten Ausdrucks in dieser Tabelle ausgeben.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_240_014.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_240_014.png\" alt=\"Benanntes Makro inklusive Ermittlung von Lookup-Werten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 8: Benanntes Makro inklusive Ermittlung von Lookup-Werten<\/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\/55000240\/\">\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\/55000240?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\/55000240\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"cc9d3a379e\"\/>\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>Datenmakros und benannte Makros liefern vor allem die interessante M&ouml;glichkeit, grundlegende Datenoperationen durchzuf&uuml;hren &#8211; also beispielsweise das Anlegen neuer Datens&auml;tze, das Bearbeiten oder L&ouml;schen vorhandener Datens&auml;tze, das Durchlaufen von Datensatzgruppen oder das Auffinden bestimmter Datens&auml;tze. Prinzipiell bilden Sie damit die Basisoperationen der DAO-Bibliothek auf Makro-Ebene ab. Dieser Artikel stellt die Datenoperationen im Detail vor.<\/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":[662014,66042014,44000016],"tags":[],"class_list":["post-55000240","post","type-post","status-publish","format-standard","hentry","category-662014","category-66042014","category-Makros"],"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>Datenmakros II: Datenoperationen - Access [basics]<\/title>\n<meta name=\"description\" content=\"Datenmakros und benannte Makros liefern vor allem die interessante M\u00f6glichkeit, grundlegende Datenoperationen durchzuf\u00fchren \u2013 also beispielsweise das Anlegen neuer Datens\u00e4tze, das Bearbeiten oder L\u00f6schen vorhandener Datens\u00e4tze, das Durchlaufen von Datensatzgruppen oder das Auffinden bestimmter Datens\u00e4tze. Prinzipiell bilden Sie damit die Basisoperationen der DAO-Bibliothek auf Makro-Ebene ab. Dieser Artikel stellt die Datenoperationen im Detail vor.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datenmakros II: Datenoperationen - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Datenmakros und benannte Makros liefern vor allem die interessante M\u00f6glichkeit, grundlegende Datenoperationen durchzuf\u00fchren \u2013 also beispielsweise das Anlegen neuer Datens\u00e4tze, das Bearbeiten oder L\u00f6schen vorhandener Datens\u00e4tze, das Durchlaufen von Datensatzgruppen oder das Auffinden bestimmter Datens\u00e4tze. Prinzipiell bilden Sie damit die Basisoperationen der DAO-Bibliothek auf Makro-Ebene ab. Dieser Artikel stellt die Datenoperationen im Detail vor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:09+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_240_009.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=\"17\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\/Datenmakros_II_Datenoperationen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_240_009.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html\",\"name\":\"Datenmakros II: Datenoperationen - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:09+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Datenmakros und benannte Makros liefern vor allem die interessante M\\u00f6glichkeit, grundlegende Datenoperationen durchzuf\\u00fchren \\u2013 also beispielsweise das Anlegen neuer Datens\\u00e4tze, das Bearbeiten oder L\\u00f6schen vorhandener Datens\\u00e4tze, das Durchlaufen von Datensatzgruppen oder das Auffinden bestimmter Datens\\u00e4tze. Prinzipiell bilden Sie damit die Basisoperationen der DAO-Bibliothek auf Makro-Ebene ab. Dieser Artikel stellt die Datenoperationen im Detail vor.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.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\/Datenmakros_II_Datenoperationen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_II_Datenoperationen.html\",\"name\":\"Datenmakros II: Datenoperationen\"}}]},{\"@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\/55000240","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=55000240"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000240\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}