{"id":55000228,"date":"2014-02-01T00:00:00","date_gmt":"2020-01-24T15:59:04","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=228"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Neue_Autowerte_ermitteln_und_RecordsAffected","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html","title":{"rendered":"Neue Autowerte ermitteln und RecordsAffected"},"content":{"rendered":"<p class='introduction'>Mit der <b>Autowert<\/b>-Funktion liefert Access eine einfache M&ouml;glichkeit, eindeutige Werte f&uuml;r Prim&auml;rschl&uuml;sselfelder zu vergeben. F&uuml;r manche Zwecke ben&ouml;tigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1401_Autowerte.mdb<\/b>.<\/p>\n<h2>ID des zuletzt hinzugef&uuml;gten Autowertes ermitteln<\/h2>\n<p>Viele Anwendungsf&auml;lle verlangen danach, die ID eines gerade hinzugef&uuml;gten Datensatzes zu ermitteln. Dies kann sowohl beim Hinzuf&uuml;gen per DAO (beziehungsweise ADO) also auch per SQL-INSERT INTO-Abfrage der Fall sein. F&uuml;r beides gibt es L&ouml;sungen, die wir in diesem Artikel vorstellen. Als Beispieltabelle verwenden wir die Tabelle <b>tblAutowerte<\/b> (siehe Bild 1), die neben dem Autowert-Feld <b>AutowertID <\/b>nur noch ein weiteres Feld namens <b>WeiteresFeld <\/b>enth&auml;lt.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_228_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_228_001.png\" alt=\"Beispieltabelle\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Beispieltabelle<\/p>\n<h2>Neuen Autowert unter DAO ermitteln<\/h2>\n<p>Unter DAO legen Sie neue Datens&auml;tze mit der <b>AddNew<\/b>-Methode an und f&uuml;gt dann den einzelnen Feldern die gew&uuml;nschten Werte hinzu. Wenn Sie anschlie&szlig;end den Autowert des neu angelegten Datensatzes ben&ouml;tigen, brauchen Sie diesen nur auszulesen &#8211; er ist beim Anlegen bereits vorhanden. Allerdings muss man dies vor dem Speichern des Datensatzes mit der <b>Update<\/b>-Methode erledigen.<\/p>\n<p>Listing 1 zeigt, wie dies funktioniert. Hier legen wir zun&auml;chst mit der <b>AddNew<\/b>-Funktion einen neuen Datensatz an und weisen dem einzigen Nicht-Prim&auml;rschl&uuml;sselfeld des Recordsets einen Wert zu.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>AutowertMitAddNewUpdate()\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"tblAutowerte\", dbOpenDynaset)\r\n     rst.Add<span style=\"color:blue;\">New<\/span>\r\n     rst!WeiteresFeld = \"Test\"\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Die neue ID lautet: \" & rst!AutowertID\r\n     rst.Update\r\n     rst.Close\r\n     <span style=\"color:blue;\">Set<\/span> rst = Nothing\r\n     <span style=\"color:blue;\">Set<\/span> db = Nothing\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 1: Autowert per DAO ermitteln<\/p>\n<p>Den Wert des Autowert-Feldes k&ouml;nnen Sie bereits nach dem Ausf&uuml;hren der <b>AddNew<\/b>-Methode abfragen &#8211; dies ist der fr&uuml;heste Zeitpunkt. Der sp&auml;teste Zeitpunkt ist kurz vor dem Speichern des Datensatzes in der zugrunde liegenden Tabelle, also vor dem Aufrufen der <b>Update<\/b>-Methode.<\/p>\n<p>Hier nutzen wir in der Beispielprozedur eine <b>MsgBox<\/b>-Funktion auf, um den Autowert des neuen Datensatzes auszugeben. Nach dem Update k&ouml;nnen Sie nicht mehr auf den Autowert zugreifen, da dies den Datensatzzeiger direkt auf die folgende Position verschiebt. Genaugenommen liefert dies je nach der gew&auml;hlten Datenherkunft unterschiedliche Werte.<\/p>\n<p>Wir gehen also zun&auml;chst davon aus, dass wir den Autowert hinter dem Aufruf der <b>Update<\/b>-Methode abfragen &#8211; also etwa so:<\/p>\n<pre>rst.Add<span style=\"color:blue;\">New<\/span>\r\nrst!WeiteresFeld = \"Test\"\r\nrst.Update\r\n<span style=\"color:blue;\">MsgBox<\/span> \"Die neue ID lautet: \" _\r\n    & rst!AutowertId<\/pre>\n<p>Bei der ersten Variante verwenden wir ein Recordset, das alle Datens&auml;tze der zugrunde liegenden Tabelle enth&auml;lt &#8211; also das aus dem bereits referenzierten Listing:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(         \"tblAutowerte\", dbOpenDynaset)<\/pre>\n<p>Das Ergebnis im Meldungsfenster lautet in diesem Fall <b>-3<\/b>! Dies ist auf keinen Fall der korrekte Wert &#8211; so viel wissen wir. Aber warum liefert Access hier den Wert <b>-3<\/b> Diese Frage lassen wir guten Gewissens offen, denn wir wissen ja, dass wir damit auf jeden Fall falsch liegen und den neuen Autowert vor dem Ausl&ouml;sen der <b>Update<\/b>-Methode ermitteln m&uuml;ssen.<\/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\/55000228\/\">\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\/55000228?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\/55000228\/\"\/>\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>Mit der <b>Autowert<\/b>-Funktion liefert Access eine einfache M&ouml;glichkeit, eindeutige Werte f&uuml;r Prim&auml;rschl&uuml;sselfelder zu vergeben. F&uuml;r manche Zwecke ben&ouml;tigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.<\/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":[66012014,662014,44000003],"tags":[],"class_list":["post-55000228","post","type-post","status-publish","format-standard","hentry","category-66012014","category-662014","category-Tabellen_entwerfen"],"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>Neue Autowerte ermitteln und RecordsAffected - Access [basics]<\/title>\n<meta name=\"description\" content=\"Mit der Autowert-Funktion liefert Access eine einfache M\u00f6glichkeit, eindeutige Werte f\u00fcr Prim\u00e4rschl\u00fcsselfelder zu vergeben. F\u00fcr manche Zwecke ben\u00f6tigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Neue Autowerte ermitteln und RecordsAffected - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Mit der Autowert-Funktion liefert Access eine einfache M\u00f6glichkeit, eindeutige Werte f\u00fcr Prim\u00e4rschl\u00fcsselfelder zu vergeben. F\u00fcr manche Zwecke ben\u00f6tigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:04+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_228_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=\"7\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\/Neue_Autowerte_ermitteln_und_RecordsAffected.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_228_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\",\"name\":\"Neue Autowerte ermitteln und RecordsAffected - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:04+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Mit der Autowert-Funktion liefert Access eine einfache M\\u00f6glichkeit, eindeutige Werte f\\u00fcr Prim\\u00e4rschl\\u00fcsselfelder zu vergeben. F\\u00fcr manche Zwecke ben\\u00f6tigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.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\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Neue_Autowerte_ermitteln_und_RecordsAffected.html\",\"name\":\"Neue Autowerte ermitteln und RecordsAffected\"}}]},{\"@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\/55000228","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=55000228"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000228\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}