{"id":55000094,"date":"2012-12-01T00:00:00","date_gmt":"2020-01-24T15:58:03","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=94"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"DAO_Recordsets_filtern_durchsuchen_und_sortieren","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html","title":{"rendered":"DAO: Recordsets filtern, durchsuchen und sortieren"},"content":{"rendered":"<p class='introduction'>Mit Recordsets k&ouml;nnen Sie die Daten aus Tabellen und Abfragen f&uuml;r die Bearbeitung und Betrachtung unter VBA verf&uuml;gbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den ben&ouml;tigten Daten f&uuml;llen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1112_DAO_Recordsets_Suchen.mdb<\/b>.<\/p>\n<p>Es gibt diesmal ausschlie&szlig;lich Code-Beispiele. Wenn Sie diese ausprobieren m&ouml;chten, legen Sie in einer Datenbank ein neues Standardmodul an, geben die Listings ein, platzieren die Einf&uuml;gemarke irgendwo im Code der auszuf&uuml;hrenden Routine und bet&auml;tigen die Taste <b>F5 <\/b>(oder <b>F8 <\/b>f&uuml;r den Einzelschrittmodus).<\/p>\n<h2>Recordset gezielt f&uuml;llen<\/h2>\n<p>Bereits mit der Angabe der Datenherkunft eines Recordsets beim &ouml;ffnen mit der <b>OpenRecordset<\/b>-Funktion k&ouml;nnen Sie die ben&ouml;tigten Daten nach Belieben einschr&auml;nken. Dabei gelten die gleichen Regeln, die auch f&uuml;r Abfragen gelten: Sie k&ouml;nnen sowohl gezielt eines oder mehrere Felder als auch einen oder mehrere Datens&auml;tze in das <b>Recordset<\/b>-Objekt einlesen. Dabei verwenden Sie nat&uuml;rlich eine oder mehrere Tabellen als Datenherkunft, die typischerweise miteinander verkn&uuml;pft sind.<\/p>\n<p>Zur Festlegung der Datenherkunft haben Sie die folgenden drei M&ouml;glichkeiten:<\/p>\n<ul>\n<li>Sie geben einfach den Namen einer Tabelle an. Das Recordset enth&auml;lt alle Datens&auml;tze mit allen Feldern der angegebenen Tabelle.<\/li>\n<li>Sie definieren die Daten f&uuml;r das Recordset mithilfe einer Abfrage, in der Sie die Tabellen, die Felder und die Kriterien f&uuml;r die aufzunehmenden Daten festlegen.<\/li>\n<li>Sie legen einen SQL-Ausdruck fest, der angibt, welche Daten aus welchen Tabellen und Feldern angezeigt werden sollen &#8211; und dort legen Sie ebenfalls die Kriterien fest.<\/li>\n<\/ul>\n<p>Sp&auml;ter lernen Sie, dass man Recordsets auch auf Basis anderer Recordsets &ouml;ffnen kann. <\/p>\n<h2>Tabellen und Felder vorausw&auml;hlen<\/h2>\n<p>Wenn Sie nicht alle Felder aller Datens&auml;tze einer Tabelle im Recordset verf&uuml;gbar m&ouml;chten, verwenden Sie am einfachsten eine Abfrage, die nur die ben&ouml;tigten Felder zur&uuml;ckliefert. In dieser Abfrage k&ouml;nnen Sie auch mehrere, normalerweise miteinander verkn&uuml;pfte Tabellen kombinieren und Felder aus mehreren Tabellen zusammenf&uuml;hren.<\/p>\n<p>Wenn Sie in einem Recordset beispielsweise auf eine Liste von Personen samt Anrede zugreifen m&ouml;chten, wobei die Anreden sich in einer Lookup-Tabelle befinden, mit der die Personen-Tabelle per Fremdschl&uuml;sselfeld verkn&uuml;pft ist, legen Sie zuerst eine Abfrage wie in Bild 1 <\/b>an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_94_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_94_001.png\" alt=\"Zusammenf&uuml;hren von Personen und Anreden f&uuml;r ein Recordset\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Zusammenf&uuml;hren von Personen und Anreden f&uuml;r ein Recordset<\/p>\n<p>Wenn Sie diese Daten nun ausgeben m&ouml;chten, verwenden Sie eine Prozedur wie die folgende:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>PersonenUndAnreden()\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(\"qryPersonen\", _\r\n         dbOpenDynaset)\r\n     <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rst.EOF\r\n         <span style=\"color:blue;\">Debug.Print<\/span> rst!Anrede, rst!Vorname, _\r\n             rst!Nachname\r\n         rst.Move<span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Loop<\/span>\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>Sie sehen: Das Ausgeben der Daten erfolgt genauso, als ob diese sich in einer einzigen Tabelle befinden w&uuml;rden.<\/p>\n<h2>Filtern und Sortieren beim &ouml;ffnen des Recordsets<\/h2>\n<p>Wenn Sie nicht alle Datens&auml;tze einer Tabelle in ein Recordset aufnehmen m&ouml;chten, k&ouml;nnen Sie diese ebenfalls mithifle einer Abfrage filtern. Dazu legen Sie einfach ein entsprechendes Kriterium f&uuml;r die betroffenen Felder fest. Wie dies gelingt, erfahren Sie beispielsweise im Artikel <b>SQL: SELECT-Abfragen<\/b>.<\/p>\n<h2>Nachtr&auml;gliches Filtern eines Recordsets<\/h2>\n<p>Wenn Sie ein Recordset bereits ge&ouml;ffnet haben und die enthaltenen Datens&auml;tze auf Basis eines bestimmten Kriteriums weiter filtern m&ouml;chten, k&ouml;nnen Sie die <b>Filter<\/b>-Eigenschaft einsetzen.<\/p>\n<p>Die <b>Filter<\/b>-Eigenschaft erwartet eine g&uuml;ltige SQL-Bedingung als Ausdruck, also beispielsweise <b>Anrede = &#8218;Frau&#8216;<\/b>. Nachdem sie die Filter-Eigenschaft gesetzt hat, &ouml;ffnet die folgende Prozedur ein zweites Recordset-Objekt namens <b>rstNurFrauen <\/b>auf Basis des ersten Recordsets <b>rstAlle <\/b>und wendet den Filter darauf an:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>PersonenNachAnrede()\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>rstAlle<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Dim <\/span>rstNurFrauen<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> rstAlle = db.OpenRecordset(\"qryPersonen\", _\r\n         dbOpenDynaset)\r\n     rstAlle.Filter = \"Anrede = 'Frau'\"\r\n     <span style=\"color:blue;\">Set<\/span> rstNurFrauen = rstAlle.OpenRecordset\r\n     <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rstNurFrauen.EOF\r\n         <span style=\"color:blue;\">Debug.Print<\/span> rstNurFrauen!Anrede, _\r\n             rstNurFrauen!Nachname\r\n         rstNurFrauen.Move<span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Loop<\/span>\r\n     rstNurFrauen.Close\r\n     <span style=\"color:blue;\">Set<\/span> rstNurFrauen = Nothing\r\n     rstAlle.Close\r\n     <span style=\"color:blue;\">Set<\/span> rstAlle = Nothing\r\n     <span style=\"color:blue;\">Set<\/span> db = Nothing\r\n<span style=\"color:blue;\">End Sub<\/span><\/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\/55000094\/\">\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\/55000094?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\/55000094\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"eaa8071de0\"\/>\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 Recordsets k&ouml;nnen Sie die Daten aus Tabellen und Abfragen f&uuml;r die Bearbeitung und Betrachtung unter VBA verf&uuml;gbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den ben&ouml;tigten Daten f&uuml;llen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.<\/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":[66122011,662011,44000018],"tags":[],"class_list":["post-55000094","post","type-post","status-publish","format-standard","hentry","category-66122011","category-662011","category-Datenzugriff_programmieren"],"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>DAO: Recordsets filtern, durchsuchen und sortieren - Access [basics]<\/title>\n<meta name=\"description\" content=\"Mit Recordsets k\u00f6nnen Sie die Daten aus Tabellen und Abfragen f\u00fcr die Bearbeitung und Betrachtung unter VBA verf\u00fcgbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den ben\u00f6tigten Daten f\u00fcllen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DAO: Recordsets filtern, durchsuchen und sortieren - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Mit Recordsets k\u00f6nnen Sie die Daten aus Tabellen und Abfragen f\u00fcr die Bearbeitung und Betrachtung unter VBA verf\u00fcgbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den ben\u00f6tigten Daten f\u00fcllen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:03+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_94_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=\"9\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\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_94_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\",\"name\":\"DAO: Recordsets filtern, durchsuchen und sortieren - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:03+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Mit Recordsets k\\u00f6nnen Sie die Daten aus Tabellen und Abfragen f\\u00fcr die Bearbeitung und Betrachtung unter VBA verf\\u00fcgbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den ben\\u00f6tigten Daten f\\u00fcllen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.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\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html\",\"name\":\"DAO: Recordsets filtern, durchsuchen und sortieren\"}}]},{\"@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\/55000094","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=55000094"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000094\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}