{"id":55000360,"date":"2017-06-01T00:00:00","date_gmt":"2020-01-24T15:59:50","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=360"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AccessObjektAssistenten_programmieren_Teil_I","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html","title":{"rendered":"Access-Objekt-Assistenten programmieren, Teil I"},"content":{"rendered":"<p class='introduction'>W&auml;hrend ein Add-In, wie wir es im Artikel &#8222;Access-Add-Ins programmieren&#8220; demonstriert haben, auch so genannt und im entsprechenden Ribbon-Men&uuml; verf&uuml;gbar ist, nennen sich die &uuml;brigen Add-Ins &#8222;Assistenten&#8220;. Schauen wir uns also nun an, wie die Assistenten sich von den Add-Ins unterscheiden und wie Sie diese programmieren. Den Start machen wir dabei mit den Objekt-Assistenten, also solchen Assistenten, die Sie f&uuml;r die verschiedenen Objekttypen wie Tabellen, Abfragen, Formulare und Berichte &uuml;ber das Ribbon-Tab &#8222;Erstellen&#8220; aufrufen k&ouml;nnen.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>Abfrageassistent.accdb<\/b>.<\/p>\n<h2>Tabellen-Assistenten<\/h2>\n<p>Tabellen-Assistenten, wie es sie in fr&uuml;heren Access-Versionen einmal gab, finden Sie in den neuen Access-Versionen nicht mehr. Es gibt schlicht keinen Eintrag namens Tabellen-Assistent mehr im Ribbon unter <b>Erstellen|Tabellen<\/b> (f&uuml;r Abfragen, Formulare und Berichte gibt es diese noch). Aber k&ouml;nnen wir &uuml;berhaupt noch eigene Tabellen-Assistenten anlegen, wenn wir gar keinen Eintrag namens Tabellen-Assistenten mehr in Access haben Dazu schauen wir uns zun&auml;chst die Vorgehensweise f&uuml;r einen Abfrage-Assistenten an, denn dort wissen wir, dass wir den Assistenten auch an der gew&uuml;nschten Stelle vorfinden.<\/p>\n<h2>Abfrage-Assistenten<\/h2>\n<p>Die Abfrage-Assistenten von Access &ouml;ffnen Sie, indem Sie auf den Eintrag <b>Erstellen|Abfragen|Abfrage-Assistent <\/b>im Ribbon klicken (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_360_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_360_001.png\" alt=\"Aufruf eines Abfrage-Assistenten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Aufruf eines Abfrage-Assistenten<\/p>\n<p>Es erscheint dann der Dialog aus Bild 2, der die vier in Access eingebauten Assistenten zum Erstellen von Abfragen f&uuml;r verschiedene Anforderungen anbietet. Diesem wollen wir nun einen eigenen Eintrag hinzuf&uuml;gen.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_360_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_360_002.png\" alt=\"Der Dialog mit den verschiedenen Abfrage-Assistenten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Der Dialog mit den verschiedenen Abfrage-Assistenten<\/p>\n<h2>Die Tabelle USysRegInfo<\/h2>\n<p>Diese Tabelle haben Sie bereits im Artikel Access-Add-Ins programmieren kennengelernt und Sie wissen, dass wir dort die Informationen speichern, die beim Installieren des Assistenten in die Registry eingetragen werden. Diese liest Access beim Start und stellt die dort registrierten Assistenten an den entsprechenden Stellen zur Verf&uuml;gung &#8211; so wie etwa im oben vorgestellten Dialog <b>Neue Abfrage<\/b>.<\/p>\n<p>Im Gegensatz zu einfachen Men&uuml;-Add-Ins gibt es bei den Objekt-Assistenten, also den Assistenten f&uuml;r die Erstellung von Tabellen, Abfragen, Formularen und Berichten eine Reihe weiterer Einstellungen, die in die Registry geschrieben werden m&uuml;ssen. Diese schauen wir uns nun im &uuml;berblick an:<\/p>\n<ul>\n<li><b>Bitmap<\/b>: Legt eine Bilddatei fest, die in dem Dialog zur Auswahl des Assistenten angezeigt werden soll, wenn der Benutzer den Assistenten markiert hat &#8211; siehe auch weiter oben im Bild des Dialogs <b>Neue Abfrage<\/b> (Zeichenfolge).<\/li>\n<li><b>BitmapID<\/b>: Angabe einer ID, &uuml;ber die Sie die in der Datei <b>MSAccess.exe <\/b>enthaltenen Icons referenzieren und als Icon des Assistenten verwenden k&ouml;nnen (Zahlenwert).<\/li>\n<li><b>Datasource Required<\/b>: Gibt an, ob f&uuml;r diesen Assistenten die Auswahl einer Datenquelle, also einer Tabelle oder Abfrage, erforderlich ist. In diesem Fall stellen Sie diese Einstellung auf den Wert <b>1 <\/b>ein, anderenfalls auf den Wert <b>0<\/b> (Zahlenwert).<\/li>\n<li><b>Description<\/b>: Wie bei den Add-Ins die Beschreibung des Add-Ins (Zeichenfolge).<\/li>\n<li><b>Function<\/b>: Die beim Aufrufen des Assistenten aufzurufende VBA-Funktion (Zeichenfolge).<\/li>\n<li><b>Index<\/b>: Einstellung f&uuml;r die Position des Assistenten in der Liste der verf&uuml;gbaren Assistenten (Zahlenwert).<\/li>\n<li><b>Library<\/b>: Pfad zu der Access-Datei, welche die aufzurufende Funktion enth&auml;lt. In der Tabelle <b>USysRegInfo <\/b>k&ouml;nnen Sie den Ausdruck <b>|ACCDIR <\/b>als Platzhalter f&uuml;r den Add-In-Ordner auf dem jeweiligen System angeben.<\/li>\n<\/ul>\n<h2>Die Tabelle USysRegInfo<\/h2>\n<p>Die zuvor genannten Informationen tragen wir wie in Bild 3 in eine Tabelle namens <b>USysRegInfo <\/b>ein. Der Aufbau dieser Tabelle wurde bereits im Artikel <b>Access-Add-Ins programmieren <\/b>erl&auml;utert. Es gibt ein paar zus&auml;tzliche Informationen, die Sie f&uuml;r einen Wizard\/Assistenten angeben k&ouml;nnen, aber zumindest die Angabe des Subkey ist identisch: Hier geben Sie den Platzhalter <b>HKEY_CURRENT_ACCESS_PROFILE\/&#8230;<\/b> f&uuml;r den zu erstellenden Registry-Key an. In meiner Installation hat Access daraus einen recht wilden Registry-Pfad erzeugt:<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_360_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_360_004.png\" alt=\"Die Tabelle USysRegInfo f&uuml;r unseren Abfrage-Add-In-Dummy\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Die Tabelle USysRegInfo f&uuml;r unseren Abfrage-Add-In-Dummy<\/p>\n<pre>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Office\\ClickToRun\\REGISTRY\\MACHINE\\Software\\Wow6432Node\\Microsoft\\Office\\16.0\\Access\\Wizards\\Query Wizards\\AbfrageAssistent<\/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\/55000360\/\">\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\/55000360?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\/55000360\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"123b777de9\"\/>\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>W&auml;hrend ein Add-In, wie wir es im Artikel &#8222;Access-Add-Ins programmieren&#8220; demonstriert haben, auch so genannt und im entsprechenden Ribbon-Men&uuml; verf&uuml;gbar ist, nennen sich die &uuml;brigen Add-Ins &#8222;Assistenten&#8220;. Schauen wir uns also nun an, wie die Assistenten sich von den Add-Ins unterscheiden und wie Sie diese programmieren. Den Start machen wir dabei mit den Objekt-Assistenten, also solchen Assistenten, die Sie f&uuml;r die verschiedenen Objekttypen wie Tabellen, Abfragen, Formulare und Berichte &uuml;ber das Ribbon-Tab &#8222;Erstellen&#8220; aufrufen k&ouml;nnen.<\/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":[662017,66032017,44000005],"tags":[],"class_list":["post-55000360","post","type-post","status-publish","format-standard","hentry","category-662017","category-66032017","category-AccessBenutzeroberflaeche"],"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>Access-Objekt-Assistenten programmieren, Teil I - Access [basics]<\/title>\n<meta name=\"description\" content=\"W\u00e4hrend ein Add-In, wie wir es im Artikel \u00bbAccess-Add-Ins programmieren\u00ab demonstriert haben, auch so genannt und im entsprechenden Ribbon-Men\u00fc verf\u00fcgbar ist, nennen sich die \u00fcbrigen Add-Ins \u00bbAssistenten\u00ab. Schauen wir uns also nun an, wie die Assistenten sich von den Add-Ins unterscheiden und wie Sie diese programmieren. Den Start machen wir dabei mit den Objekt-Assistenten, also solchen Assistenten, die Sie f\u00fcr die verschiedenen Objekttypen wie Tabellen, Abfragen, Formulare und Berichte \u00fcber das Ribbon-Tab \u00bbErstellen\u00ab aufrufen k\u00f6nnen.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access-Objekt-Assistenten programmieren, Teil I - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"W\u00e4hrend ein Add-In, wie wir es im Artikel \u00bbAccess-Add-Ins programmieren\u00ab demonstriert haben, auch so genannt und im entsprechenden Ribbon-Men\u00fc verf\u00fcgbar ist, nennen sich die \u00fcbrigen Add-Ins \u00bbAssistenten\u00ab. Schauen wir uns also nun an, wie die Assistenten sich von den Add-Ins unterscheiden und wie Sie diese programmieren. Den Start machen wir dabei mit den Objekt-Assistenten, also solchen Assistenten, die Sie f\u00fcr die verschiedenen Objekttypen wie Tabellen, Abfragen, Formulare und Berichte \u00fcber das Ribbon-Tab \u00bbErstellen\u00ab aufrufen k\u00f6nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:50+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_360_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=\"8\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\/AccessObjektAssistenten_programmieren_Teil_I.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_360_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html\",\"name\":\"Access-Objekt-Assistenten programmieren, Teil I - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:50+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"W\\u00e4hrend ein Add-In, wie wir es im Artikel \\u00bbAccess-Add-Ins programmieren\\u00ab demonstriert haben, auch so genannt und im entsprechenden Ribbon-Men\\u00fc verf\\u00fcgbar ist, nennen sich die \\u00fcbrigen Add-Ins \\u00bbAssistenten\\u00ab. Schauen wir uns also nun an, wie die Assistenten sich von den Add-Ins unterscheiden und wie Sie diese programmieren. Den Start machen wir dabei mit den Objekt-Assistenten, also solchen Assistenten, die Sie f\\u00fcr die verschiedenen Objekttypen wie Tabellen, Abfragen, Formulare und Berichte \\u00fcber das Ribbon-Tab \\u00bbErstellen\\u00ab aufrufen k\\u00f6nnen.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.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\/AccessObjektAssistenten_programmieren_Teil_I.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/AccessObjektAssistenten_programmieren_Teil_I.html\",\"name\":\"Access-Objekt-Assistenten programmieren, Teil I\"}}]},{\"@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\/55000360","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=55000360"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000360\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}