{"id":55000237,"date":"2014-06-01T00:00:00","date_gmt":"2020-01-24T15:59:08","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=237"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Datenmakros_I_Grundlagen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html","title":{"rendered":"Datenmakros I: Grundlagen"},"content":{"rendered":"<p class='introduction'>Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit k&ouml;nnen Sie sowohl endlich auch die &uuml;blichen Bearbeitungen und Zugriffe auf Tabellen durchf&uuml;hren (mit benannten Makros) als auch eine Art Ereignisse f&uuml;r Tabellen definieren, die beim Anlegen, &auml;ndern oder L&ouml;schen von Daten in Tabellen ausgel&ouml;st werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros  und benaanlegen und was es dabei zu beachten gibt.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1403_Daten-makros.mdb<\/b>.<\/p>\n<h2>Einf&uuml;hrung<\/h2>\n<p>Datenmakros kommen gleich in zwei Ausf&uuml;hrungen: Die erste entspricht etwa den Triggern anderer Datenbanksysteme. Trigger werden durch &auml;nderungen an den Datens&auml;tzen einer Datenbank ausgel&ouml;st. Die zweite kann einfache Datenoperationen abbilden, wie Sie sie auch per VBA mit den Elementen der DAO-Bibliothek programmieren k&ouml;nnen &#8211; also etwa das Hinzuf&uuml;gen, &auml;ndern oder L&ouml;schen eines Datensatzes, aber auch das Auslesen von Feldinhalten eines zuvor ermittelten Datensatzes.<\/p>\n<h2>Ereignisse in Tabellen<\/h2>\n<p>Die folgenden Ereignisse in Zusammenhang mit der &auml;nderung von Datens&auml;tzen in Tabellen k&ouml;nnen Datenmakros ausl&ouml;sen (sofern diese definiert sind):<\/p>\n<ul>\n<li>Nach dem Anlegen eines Datensatzes<\/li>\n<li>Vor dem &auml;ndern eines oder mehrerer Felder eines Datensatzes<\/li>\n<li>Nach dem &auml;ndern eines Datensatzes<\/li>\n<li>Vor dem L&ouml;schen eines Datensatzes<\/li>\n<li>Nach dem L&ouml;schen eines Datensatzes<\/li>\n<\/ul>\n<p>Das Sch&ouml;ne an Datenmakros ist, dass diese immer ausgel&ouml;st werden, wenn die entsprechende &auml;nderung erfolgt &#8211; egal, wodurch die &auml;nderung geschieht.<\/p>\n<p>Es gibt beispielsweise die folgenden M&ouml;glichkeiten, eine entsprechende &auml;nderung zu bewirken und dadurch ein Datenmakro auszul&ouml;sen:<\/p>\n<ul>\n<li>&auml;nderungen direkt in der Datenblattansicht der Tabelle<\/li>\n<li>&auml;nderungen &uuml;ber die Datenblattansicht einer Abfrage<\/li>\n<li>&auml;nderungen &uuml;ber die Eingabe in ein Formular<\/li>\n<li>&auml;nderungen per DAO oder ADO<\/li>\n<li>&auml;nderungen durch die direkte Ausf&uuml;hrung einer Aktionsabfrage &uuml;ber den Navigationsbereich (<b>INSERT INTO<\/b>, <b>UPDATE<\/b>, <b>DELETE<\/b>, <b>SELECT INTO<\/b>)<\/li>\n<li>&auml;nderung durch eine Aktionsabfrage, die per <b>DoCmd.RunSQL <\/b>oser per <b><Database>.Execute <\/b>ausgel&ouml;st wurde<\/li>\n<\/ul>\n<p>Der Artikel <b>Datenmakros III: Ereignisse <\/b>liefert einige Beispiele f&uuml;r den Einsatz von Ereignissen in Tabellen.<\/p>\n<h2>Benannte Makros<\/h2>\n<p>Die benannten Makros legen Sie immer in Zusammenhang mit einer Tabelle an. Diese m&uuml;ssen sich aber nicht auf die aktuelle Tabelle beziehen, sondern Sie k&ouml;nnen damit auch die Daten anderer Tabellen bearbeiten oder einlesen. Benannte Makros k&ouml;nnen Sie entweder von Datenmakros aus ausl&ouml;sen oder auch mit der Makroaktion <b>Ausf&uuml;hrenDatenmakro <\/b>von einem herk&ouml;mmlichen Makro aus.<\/p>\n<p>Auch die Ausf&uuml;hrung per VBA ist m&ouml;glich. Dazu rufen Sie einfach die Methode <b>RunDataMacro <\/b>des <b>DoCmd<\/b>-Objekts auf &#8211; beispielsweise wie folgt:<\/p>\n<pre>DoCmd.RunDataMacro \"macDatenmakro\"<\/pre>\n<p>Sp&auml;ter erfahren Sie noch ein weiteres Detail hierzu &#8211; n&auml;mlich zur &uuml;bergabe von Parametern.<\/p>\n<h2>Datenmakros anlegen<\/h2>\n<p>Datenmakros werden nicht wie herk&ouml;mmliche Datenmakros &uuml;ber den Ribbon-Eintrag <b>Erstellen|Makros und Code|Makros <\/b>erstellt, sondern im Kontext der jeweiligen Tabelle. Dazu w&auml;hlen Sie in der Entwurfsansicht den Ribbon-Eintrag <b>Entwurf|Feld-, Da-ten-satz- und Ta-bel-len-er-eig-nis-se|Da-ten-makros erstellen<\/b> und &ouml;ffnen so eine Liste der verf&uuml;gbaren Datenmakros sowie die M&ouml;glichkeit, ein benanntes Makro zu erstellen (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_237_026.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_237_026.png\" alt=\"Datenmakros &uuml;ber den Tabellenentwurf erstellen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Datenmakros &uuml;ber den Tabellenentwurf erstellen<\/p>\n<p>Sp&auml;ter werden Sie an dieser Stelle die M&ouml;glichkeit erhalten, bereits erstellte Datenmakros und benannte Makros zu bearbeiten.<\/p>\n<p>Mit den neueren Access-Versionen (ab Version 2007) k&ouml;nnen Sie Tabellen auch in der Datenblattansicht bearbeiten. Das gilt auch f&uuml;r das Anlegen und Bearbeiten von Datenmakros und benannten Makros. Wenn Sie die Ansicht der Tabelle zur Datenblattansicht wechseln, finden Sie im Ribbon unter dem Tab <b>Tabelle <\/b>alle notwendigen Befehle direkt in der &uuml;bersicht vor (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_237_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_237_003.png\" alt=\"Datenmakros und benannte Makros direkt zur Datenblattansicht hinzfu&uuml;gen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Datenmakros und benannte Makros direkt zur Datenblattansicht hinzfu&uuml;gen<\/p>\n<p>Hier werden die Makros sogar noch in zwei Ribbon-Gruppen unterteilt, n&auml;mlich in Vorabereignisse (<b>Vor &auml;nderung <\/b>und <b>Vor L&ouml;schung<\/b>) und Nachfolgeereignisse (<b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung <\/b>und <b>Nach L&ouml;schung<\/b>).<\/p>\n<h2>Einfache Protokollierung<\/h2>\n<p>W&auml;hlen Sie hier den Eintrag <b>Nach Einf&uuml;gung<\/b>, zeigt Access ein neues, leeres Makro an, das nach dem Einf&uuml;gen eines neuen Datensatzes ausgef&uuml;hrt wird. In diesem Fall wollen wir noch keine &auml;nderung am Feld <b>AngelegtAm<\/b> vornehmen, sondern ein sehr sch&ouml;nes Feature der Datenmakros nutzen: Es gibt n&auml;mlich eine Tabelle namens <b>USysApplicationLog<\/b>, mit der Sie Informationen aus Makros heraus speichern k&ouml;nnen, und zwar auf einfachste Weise.<\/p>\n<p>Dazu klicken Sie in der Datenblattansicht auf den Ribbon-Eintrag <b>Tabelle|Nachfolgeereignisse|Nach Einf&uuml;gung<\/b>. Es erscheint ein neues, leeres Makro, dem Sie den Befehl <b>ProtokollierenEreignis <\/b>hinzuf&uuml;gen. Dieses erwartet als Parameter lediglich den Text des zu protokollierenden Ereignisses, in diesem Fall den folgenden (siehe Bild 3):<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_237_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_237_004.png\" alt=\"Tabellen-Ereignisse per Makro protokollieren\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Tabellen-Ereignisse per Makro protokollieren<\/p>\n<pre>=\"Datensatz mit der ID '\" & [tblBeispieleFuerProtokollierung].[BeispielID] & \"' in der Tabelle 'tblBeispieleFuerProtokollierung' angelegt. Zeit: \" & Jetzt()<\/pre>\n<p>Darin stecken gleich mehrere Informationen, n&auml;mlich der Prim&auml;rschl&uuml;sselwert des neu hinzugef&uuml;gten Datensatzes und die aktuelle Zeit mit Datum (<b>Jetzt()<\/b>).<\/p>\n<p>Wenn Sie das Makro speichern und schlie&szlig;en, k&ouml;nnen Sie es gleich ausprobieren. Dazu m&uuml;ssen Sie lediglich einen neuen Datensatz zur Tabelle hinzuf&uuml;gen. Aber was geschieht nun Zun&auml;chst einmal nichts Sichtbares.<\/p>\n<p>Erst wenn Sie zuf&auml;llig zum Backstage-Bereich von Access 2010 und neuer wechseln, finden Sie einen passenden Hinweis: &uuml;ber den &uuml;blichen Schaltfl&auml;chen etwa zum Komprimieren und Reparieren der aktuellen Datenbank finden Sie dort n&auml;mlich jetzt eine Schaltfl&auml;che mit der Beschriftung <b>Anwendungsprotokolltabelle anzeigen <\/b>(siehe Bild 4).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_237_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_237_005.png\" alt=\"Der Backstage-Bereich liefert einen Hinweis auf die Anwendungsprotokolltabelle\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Der Backstage-Bereich liefert einen Hinweis auf die Anwendungsprotokolltabelle<\/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\/55000237\/\">\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\/55000237?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\/55000237\/\"\/>\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>Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit k&ouml;nnen Sie sowohl endlich auch die &uuml;blichen Bearbeitungen und Zugriffe auf Tabellen durchf&uuml;hren (mit benannten Makros) als auch eine Art Ereignisse f&uuml;r Tabellen definieren, die beim Anlegen, &auml;ndern oder L&ouml;schen von Daten in Tabellen ausgel&ouml;st werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros  und benaanlegen und was es dabei zu beachten gibt.<\/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,66032014,44000016],"tags":[],"class_list":["post-55000237","post","type-post","status-publish","format-standard","hentry","category-662014","category-66032014","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 I: Grundlagen - Access [basics]<\/title>\n<meta name=\"description\" content=\"Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit k\u00f6nnen Sie sowohl endlich auch die \u00fcblichen Bearbeitungen und Zugriffe auf Tabellen durchf\u00fchren (mit benannten Makros) als auch eine Art Ereignisse f\u00fcr Tabellen definieren, die beim Anlegen, \u00c4ndern oder L\u00f6schen von Daten in Tabellen ausgel\u00f6st werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros und benaanlegen und was es dabei zu beachten gibt.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datenmakros I: Grundlagen - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit k\u00f6nnen Sie sowohl endlich auch die \u00fcblichen Bearbeitungen und Zugriffe auf Tabellen durchf\u00fchren (mit benannten Makros) als auch eine Art Ereignisse f\u00fcr Tabellen definieren, die beim Anlegen, \u00c4ndern oder L\u00f6schen von Daten in Tabellen ausgel\u00f6st werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros und benaanlegen und was es dabei zu beachten gibt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:08+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_237_026.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=\"13\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_I_Grundlagen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_237_026.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html\",\"name\":\"Datenmakros I: Grundlagen - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:08+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit k\\u00f6nnen Sie sowohl endlich auch die \\u00fcblichen Bearbeitungen und Zugriffe auf Tabellen durchf\\u00fchren (mit benannten Makros) als auch eine Art Ereignisse f\\u00fcr Tabellen definieren, die beim Anlegen, \\u00c4ndern oder L\\u00f6schen von Daten in Tabellen ausgel\\u00f6st werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros und benaanlegen und was es dabei zu beachten gibt.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.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_I_Grundlagen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_I_Grundlagen.html\",\"name\":\"Datenmakros I: Grundlagen\"}}]},{\"@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\/55000237","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=55000237"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000237\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}