{"id":55000248,"date":"2014-12-01T00:00:00","date_gmt":"2020-01-24T15:59:12","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=248"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Datenmakros_III_Ereignisse","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html","title":{"rendered":"Datenmakros III: Ereignisse"},"content":{"rendered":"<p class='introduction'>Mit der Einf&uuml;hrung von Datenmakros mit in Access 2010 bietet sich nun auch f&uuml;r Access-Benutzer die M&ouml;glichkeit, &uuml;ber eine Art Trigger Aktionen auszuf&uuml;hren, die in Zusammenhang mit dem Anlegen, &auml;ndern oder L&ouml;schen von Datens&auml;tzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1406_Makros.accdb<\/b>.<\/p>\n<h2>Datenereignisse<\/h2>\n<p>Access bietet seit Access 2010 die folgenden Tabellenereignisse an:<\/p>\n<ul>\n<li><b>Vor &auml;nderung<\/b><\/li>\n<li><b>Vor L&ouml;schung<\/b><\/li>\n<li><b>Nach Einf&uuml;gung<\/b><\/li>\n<li><b>Nach Aktualisierung<\/b><\/li>\n<li><b>Nach L&ouml;schung<\/b><\/li>\n<\/ul>\n<p>Wir schauen uns in den folgenden Abschnitten einfache Beispiele f&uuml;r diese Ereignisse an und zeigen Ihnen, welche Besonderheiten diese jeweils aufweisen. Die Ereignisse k&ouml;nnen Sie auf zwei verschiedenen Wegen festlegen:<\/p>\n<ul>\n<li>&uuml;ber die Ribbon-Eintr&auml;ge unter <b>Tabelle|Vorabereignisse <\/b>und <b>Tabelle|Nachfolgeereignisse <\/b>der Datenblattansicht der Tabelle (siehe Bild 2) und <\/li>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_002.png\" alt=\"Schaltfl&auml;chen zum Hinzuf&uuml;gen von Tabellenereignissen in der Datenblattansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Schaltfl&auml;chen zum Hinzuf&uuml;gen von Tabellenereignissen in der Datenblattansicht<\/p>\n<li>&uuml;ber die Ribbon-Eintr&auml;ge unter <b>Entwurf|Feld-, Datensatz- und Ta-bel-len-er-eig-nisse|Da-ten-makros er-stellen <\/b>der Entwurfsansicht einer Tabelle (siehe Bild 3).<\/li>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_003.png\" alt=\"Schaltfl&auml;chen zum Hinzuf&uuml;gen von Tabellenereignissen in der Entwurfsansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Schaltfl&auml;chen zum Hinzuf&uuml;gen von Tabellenereignissen in der Entwurfsansicht<\/p>\n<\/ul>\n<p>Die Beispieldatenbank enth&auml;lt eine einfache Tabelle namens <b>tblKunden<\/b>, die wie in Bild 1 aussieht. An dieser Tabelle demonstrieren wir die nachfolgenden Beispiele.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_001.png\" alt=\"Tabelle zum Darstellen der M&ouml;glichkeiten von Tabellenereignissen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Tabelle zum Darstellen der M&ouml;glichkeiten von Tabellenereignissen<\/p>\n<h2>M&ouml;gliche Makrobefehle<\/h2>\n<p>Je nachdem, welches Datenmakro Sie verwenden, stehen Ihnen unterschiedliche Makrobefehle zur Verf&uuml;gung.<\/p>\n<p>Einen sehr eingeschr&auml;nkten Vorrat an Makrobefehlen finden Sie f&uuml;r die beiden Datenmakros <b>Vor &auml;nderung <\/b>und <b>Vor L&ouml;schung <\/b>vor:<\/p>\n<ul>\n<li><b>Gruppieren<\/b>: Fasst mehrere Befehle zu einer Gruppe zusammen.<\/li>\n<li><b>Kommentar<\/b>: Erlaubt die Eingabe eines Kommentars.<\/li>\n<li><b>Wenn<\/b>: Bedingungsblock<\/li>\n<li><b>Ausl&ouml;senFehler<\/b>: L&ouml;st einen Fehler aus, der allerdings nur in der Protokolltabelle landet.<\/li>\n<li><b>BeiFehler<\/b>: Aktiviert die Fehlerbehandlung.<\/li>\n<li><b>FestlegenFeld <\/b>(nur in <b>Vor &auml;nderung<\/b>, nicht in <b>Vor L&ouml;schung<\/b>): Legt den Wert eines Feldes der aktuellen Tabelle fest, die das Datenmakro ausgel&ouml;st hat. In den &uuml;brigen Tabellenereignissen nur &uuml;ber <b>DatensatzBearbeiten <\/b>und <b>DatensatzErstellen <\/b>verf&uuml;gbar.<\/li>\n<li><b>FestlegenLokaleVar<\/b>: Legt eine lokale Variable fest.<\/li>\n<li><b>L&ouml;schenMakroFehler<\/b>: Setzt das <b>MakroError<\/b>-Objekt zur&uuml;ck.<\/li>\n<li><b>NachschlagenDatensatz<\/b>: Wie <b>DLookup<\/b>.<\/li>\n<li><b>StoppMakro<\/b>: Beendet das Makro.<\/li>\n<\/ul>\n<p>F&uuml;r die drei Datenmakros <b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung <\/b>und <b>Nach L&ouml;schung <\/b>stehen noch einige weitere Makrobefehle zur Verf&uuml;gung:<\/p>\n<ul>\n<li><b>Ausf&uuml;hrenDatenmakro<\/b>: Ruft ein weiteres Datenmakro auf.<\/li>\n<li><b>BeendenF&uuml;rJedenDatensatz<\/b>: Beendet eine <b>F&uuml;rJedenDatensatz<\/b>-Schleife.<\/li>\n<li><b>DatensatzBearbeiten<\/b>: Bearbeitet einen Datensatz. Darin Zuweisung der Werte mit <b>FestlegenFeld<\/b>.<\/li>\n<li><b>DatensatzErstellen<\/b>: Erstellt einen neuen Datensatz. Darin Zuweisung der Werte mit <b>FestlegenFeld<\/b>.<\/li>\n<li><b>DatensatzL&ouml;schen<\/b>: L&ouml;scht einen Datensatz.<\/li>\n<li><b>F&uuml;rJedenDatensatz<\/b>: Wie <b>Do While Not rst.EOF<\/b>-Schleife.<\/li>\n<li><b>ProtokollierenEreignis<\/b>: Tr&auml;gt ein Ereignis in die Tabelle <b>USysApplicationLog <\/b>ein.<\/li>\n<li><b>SendenEMail<\/b>: Sendet eine E-Mail.<\/li>\n<li><b>StoppAlleMakros<\/b>: Beendet alle Makros, auch diejenigen, die das aktuelle Makro aufgerufen haben.<\/li>\n<\/ul>\n<p>In den drei Makros <b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung <\/b>und <b>Nach L&ouml;schung <\/b>gibt es keinen direkten Zugriff auf den Makrobefehl <b>FestlegenFeld<\/b>.<\/p>\n<p>Kein Wunder: Dieser steht im Datenmakro <b>Vor &auml;nderung <\/b>auch nur bereit, weil er sich auf die Felder der aktuellen Tabelle bezieht.<\/p>\n<p>Aus einem anderen Grund fehlt der Befehl im Datenmakro <b>Vor L&ouml;schung <\/b>komplett: Es w&uuml;rde ja keinen Sinn machen, einen Feldwert vor dem L&ouml;schen noch zu &auml;ndern.<\/p>\n<h2>Spezielle Tabellen, Felder und Funktionen<\/h2>\n<p>Wenn Sie Werte in die Eigenschaften der Makroaktionen eintragen wollen und den ersten Buchstaben eintippen, erhalten Sie gleich per IntelliSense alle m&ouml;glichen Vorschl&auml;ge.<\/p>\n<p>Noch besser gelingt dies, wenn Sie innerhalb eines Eigenschaftsfeldes die Tastenkombination <b>Strg + Leertaste <\/b>bet&auml;tigen. Der Makroeditor zeigt dann direkt alle zur Verf&uuml;gung stehenden Elemente an (siehe Bild 4).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_004.png\" alt=\"Auswahl der Elemente per IntelliSense\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Auswahl der Elemente per IntelliSense<\/p>\n<p>Nachfolgend finden Sie eine Auflistung spezieller Elemente inklusive der Tabellenereignisse, welche diese zur Verf&uuml;gung stellen:<\/p>\n<ul>\n<li><b>Aktualisiert<\/b> (<b>Vor &auml;nderung<\/b>, <b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Vor L&ouml;schung<\/b>, <b>Nach L&ouml;schung<\/b>): Gibt an, ob der Wert des als Parameter angegebenen Feldes ge&auml;ndert wurde. Das dieser auch in den beiden Ereignissen <b>Vor L&ouml;schung<\/b> und <b>Nach L&ouml;schung <\/b>angeboten wird, ist nicht wirklich sinnvoll &#8211; was spielt es f&uuml;r eine Rolle, ob ein zu l&ouml;schender Datensatz zuvor ge&auml;ndert wurde<\/li>\n<li><b>Alt <\/b>(<b>Vor &auml;nderung<\/b>, <b>Vor L&ouml;schung<\/b>, <b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Nach L&ouml;schung<\/b>): Erm&ouml;glicht den Zugriff auf den Datensatz vor der &auml;nderung. Dabei verwenden Sie statt des Tabellennamens einfach den Namen <b>Alt<\/b>, zum Beispiel <b>Alt!KundeID<\/b>.<\/li>\n<li><b>IstEingef&uuml;gt <\/b>(<b>Vor &auml;nderung<\/b>): Pr&uuml;ft, ob der ge&auml;nderte Datensatz soeben ge&auml;ndert oder eingef&uuml;gt wurde.<\/li>\n<li><b>LetztesErstellenDatensatzID <\/b>(<b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Nach L&ouml;schung<\/b>): Damit k&ouml;nnen Sie, wenn Sie von einem Makro aus einen Datensatz anlegen, gleich den Prim&auml;rschl&uuml;sselwert dieses Datensatzes ermitteln (sofern es sich um einen Autowert handelt).<\/li>\n<li><b>MakroErneutGestartet <\/b>(<b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Nach L&ouml;schung<\/b>): Liefert eine Information, ob das Makro durch das gleiche Makro neu gestartet wurde. Wenn Sie beispielsweise in einem Nach Aktualisierung-Makro wieder ein Feld des gleichen Datensatzes aktualisieren, l&ouml;st dies wieder das gleiche Datenmakro aus. Wenn dies nicht geschehen soll, k&ouml;nnen Sie dies durch das Makro abfangen.<\/li>\n<li><b>MakroError <\/b>(<b>Vor &auml;nderung<\/b>, <b>Vor L&ouml;schung<\/b>, <b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Nach L&ouml;schung<\/b>): Liefert Informationen &uuml;ber den zuletzt aufgetretenen Fehler.<\/li>\n<li><b>R&uuml;ckgabevariablen <\/b>(<b>Nach Einf&uuml;gung<\/b>, <b>Nach Aktualisierung<\/b>, <b>Nach L&ouml;schung<\/b>): Wenn Sie ein weiteres Datenmakro aufrufen und dieses R&uuml;ckgabevariablen liefert, k&ouml;nnen Sie diese &uuml;ber dieses Objekt auslesen.<\/li>\n<\/ul>\n<h2>Anwendung der f&uuml;nf Tabellenereignisse<\/h2>\n<p>Beginnen wir mit dem Anlegen eines Datensatzes. In diesem Fall k&ouml;nnen Sie lediglich das Tabellenereignis <b>Nach Einf&uuml;gung <\/b>nutzen. Dieses erlaubt es beispielsweise, <\/p>\n<ul>\n<li>eine E-Mail zu verschicken und jemanden &uuml;ber das Anlegen des Datensatzes zu informieren,<\/li>\n<li>das Anlegedatum und den Benutzer, der den Datensatz angelegt hat, zu speichern,<\/li>\n<li>ein Feld mit einem Standardwert zu f&uuml;llen, der nicht &uuml;ber die daf&uuml;r vorgesehene Eigenschaft ermittelt werden kann.<\/li>\n<\/ul>\n<p>Aber warum gibt es &uuml;berhaupt kein Tabellenereignis, das vor dem Anlegen eines Datensatzes ausgel&ouml;st wird In der Tat gibt es dieses sehr wohl, allerdings etwas versteckt: Das Tabellenereignis <b>Vor &auml;nderung <\/b>wird n&auml;mlich auch beim Anlegen eines Datensatzes ausgel&ouml;st. Mit der Eigenschaft <b>IstEingef&uuml;gt <\/b>k&ouml;nnen Sie dann ermitteln, ob ein neuer Datensatz eingef&uuml;gt oder ein bestehender Datensatz ge&auml;ndert werden soll.<\/p>\n<p>Beim &auml;ndern eines Datensatzes k&ouml;nnen Sie zwei Ereignisse programmieren: <b>Vor &auml;nderung <\/b>und <b>Nach Aktualisierung <\/b>(nur Microsoft wei&szlig;, warum dies nicht <b>Vor &auml;nderung <\/b>und <b>Nach &auml;nderung <\/b>oder <b>Vor Aktualisierung <\/b>und <b>Nach Aktualisierung <\/b>hei&szlig;t &#8230;).<\/p>\n<p>Im Ereignis <b>Vor &auml;nderung <\/b>pr&uuml;fen Sie, ob eine &auml;nderung &uuml;berhaupt zul&auml;ssig ist oder nicht. Falls ein Feld eine von Ihnen definierte Bedingung nicht erf&uuml;llt, rufen Sie einfach die Makroaktion <b>Ausl&ouml;senFehler <\/b>auf und geben damit &#8211; nebst Abbruch der &auml;nderung &#8211; eine entsprechende Meldung aus.<\/p>\n<p>In diesem Ereignis k&ouml;nnen Sie ebenfalls bereits Feldwerte der aktuellen Tabelle anpassen.<\/p>\n<p>Das L&ouml;schen eines Datensatzes l&ouml;st die beiden Ereignisse <b>Vor L&ouml;schung <\/b>und <b>Nach L&ouml;schung <\/b>aus. Das Ereignis <b>Vor L&ouml;schung <\/b>k&ouml;nnen Sie nutzen, um den L&ouml;schvorgang zu unterbinden &#8211; beispielsweise, wenn in einer Tabelle gar keine Datens&auml;tze gel&ouml;scht werden d&uuml;rfen.<\/p>\n<p>Das Ereignis <b>Nach L&ouml;schung <\/b>verwenden Sie beispielsweise, um die Daten eines gel&ouml;schten Datensatzes zu archivieren oder um Felder mit aggregierten Werten, die sich auch auf den gel&ouml;schten Datensatz beziehen, zu aktualisieren.<\/p>\n<h2>Die Eigenschaft IstEingef&uuml;gt<\/h2>\n<p>Mithilfe dieser Eigenschaft, die nur im Tabellenereignis <b>Vor &auml;nderung <\/b>zur Verf&uuml;gung steht, k&ouml;nnen Sie pr&uuml;fen, ob ein zu &auml;ndernder Datensatz soeben angelegt wurde oder bereits vorhanden war.<\/p>\n<p>Das Beispielmakro aus Bild 5 pr&uuml;ft, ob der Wert dieser Eigenschaft nicht wahr ist und f&uuml;hrt nur dann die in der <b>Wenn<\/b>-Bedingung enthaltene Anweisung aus &#8211; also nur dann, wenn der Datensatz bereits vorhanden war und nicht neu angelegt wurde.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_005.png\" alt=\"Ausl&ouml;sen eines Fehlers beim Versuch, einen Datensatz zu &auml;ndern\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Ausl&ouml;sen eines Fehlers beim Versuch, einen Datensatz zu &auml;ndern<\/p>\n<p>In diesem Fall soll eine Meldung angezeigt werden, die den Benutzer darauf hinweist, dass vorhandene Datens&auml;tze nicht ge&auml;ndert werden k&ouml;nnen &#8211; siehe Bild 6.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_248_006.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_248_006.png\" alt=\"Fehlermeldung beim &auml;ndern eines vorhandenen Datensatzes\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 6: Fehlermeldung beim &auml;ndern eines vorhandenen Datensatzes<\/p>\n<p>Der Datensatz kann nach dem Ausblenden der Meldung erst gespeichert werden, wenn die &auml;nderungen etwa mit der Escape-Taste r&uuml;ckg&auml;ngig gemacht wurden (siehe Tabelle <b>tblKunden_Beispiel_IstEingefuegt <\/b>der Beispieldatenbank).<\/p>\n<h2>Die Funktion Aktualisiert<\/h2>\n<p>Eine weitere sehr interessante Funktion hei&szlig;t <b>Aktualisiert <\/b>und erwartet die Angabe eines Feldnamens als Parameter.<\/p>\n<p>Wir schauen uns dies anhand der Tabelle <b>tblKunden_Beispiel_Aktualisiert <\/b>der Beispieldatenbank an. Diese Tabelle enth&auml;lt wiederum ein Makro, das durch das Tabellenereignis <b>Vor &auml;nderung <\/b>ausgel&ouml;st wird. Es pr&uuml;ft in seiner Wenn-Bedingung den folgenden Ausdruck:<\/p>\n<pre>Aktualisiert(\"Vorname\") Oder Aktualisiert(\"Nachname\")<\/pre>\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\/55000248\/\">\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\/55000248?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\/55000248\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"cf3f839560\"\/>\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>Mit der Einf&uuml;hrung von Datenmakros mit in Access 2010 bietet sich nun auch f&uuml;r Access-Benutzer die M&ouml;glichkeit, &uuml;ber eine Art Trigger Aktionen auszuf&uuml;hren, die in Zusammenhang mit dem Anlegen, &auml;ndern oder L&ouml;schen von Datens&auml;tzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.<\/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,66062014,44000016],"tags":[],"class_list":["post-55000248","post","type-post","status-publish","format-standard","hentry","category-662014","category-66062014","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 III: Ereignisse - Access [basics]<\/title>\n<meta name=\"description\" content=\"Mit der Einf\u00fchrung von Datenmakros mit in Access 2010 bietet sich nun auch f\u00fcr Access-Benutzer die M\u00f6glichkeit, \u00fcber eine Art Trigger Aktionen auszuf\u00fchren, die in Zusammenhang mit dem Anlegen, \u00c4ndern oder L\u00f6schen von Datens\u00e4tzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datenmakros III: Ereignisse - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Mit der Einf\u00fchrung von Datenmakros mit in Access 2010 bietet sich nun auch f\u00fcr Access-Benutzer die M\u00f6glichkeit, \u00fcber eine Art Trigger Aktionen auszuf\u00fchren, die in Zusammenhang mit dem Anlegen, \u00c4ndern oder L\u00f6schen von Datens\u00e4tzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:12+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_248_002.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=\"22\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_III_Ereignisse.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_248_002.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html\",\"name\":\"Datenmakros III: Ereignisse - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:12+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Mit der Einf\\u00fchrung von Datenmakros mit in Access 2010 bietet sich nun auch f\\u00fcr Access-Benutzer die M\\u00f6glichkeit, \\u00fcber eine Art Trigger Aktionen auszuf\\u00fchren, die in Zusammenhang mit dem Anlegen, \\u00c4ndern oder L\\u00f6schen von Datens\\u00e4tzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.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_III_Ereignisse.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datenmakros_III_Ereignisse.html\",\"name\":\"Datenmakros III: Ereignisse\"}}]},{\"@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\/55000248","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=55000248"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000248\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}