{"id":55000249,"date":"2014-12-01T00:00:00","date_gmt":"2020-01-24T15:59:12","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=249"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Datensaetze_filtern_per_Kombinationsfeld","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html","title":{"rendered":"Datens&auml;tze filtern per Kombinationsfeld"},"content":{"rendered":"<p class='introduction'>Wenn Sie ein Kombinationsfeld etwa zum Filtern von Artikeln nach einer bestimmten Kategorie verwenden, k&ouml;nnen Sie jeweils eine Gruppe von Artikeln anzeigen. Was aber, wenn Sie anschlie&szlig;end wieder alle Artikel anzeigen m&ouml;chten F&uuml;r diesen Fall k&ouml;nnen Sie dem Kombinationsfeld einen Eintrag etwa mit dem Wert <b><Alle anzeigen> <\/b>hinzuf&uuml;gen. Dessen Auswahl f&uuml;hrt dann zur Aufhebung des jeweiligen Filters. Wir zeigen Ihnen, wie dies funktioniert.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1406_DatensaetzeFilternPerKombinationsfeld.mdb<\/b>.<\/p>\n<p>Wenn Sie in einem Unterformular oder in einem Listenfeld die &uuml;bersicht &uuml;ber die Daten einer Tabelle oder Abfrage darstellen, die sich nach verschiedenen Kriterien gruppieren lassen, kann es sinnvoll sein, diese nach diesem Kriterium zu filtern. Im Beispiel schauen wir uns eine &uuml;bersicht aller Artikel einer Datenbank an, die nach der Kategorie gefiltert werden k&ouml;nnen.<\/p>\n<p>Das Formular <b>frmArtikeluebersicht <\/b>zeigt die Artikel im Unterformular <b>sfmArtikeluebersicht <\/b>in der Datenblattansicht an.<\/p>\n<p>Die Tabelle <b>tblArtikel<\/b>, die dort als Datenherkunft dient, verwendet ein Nachschlagefeld namens <b>KategorieID <\/b>zur Auswahl eines der Datens&auml;tze der verkn&uuml;pften Tabelle <b>tblKategorien<\/b> (weitere Informationen zum Aufbau dieses Formulars erhalten Sie im Artikel <b>Daten&uuml;bergabe zwischen Formularen<\/b>).<\/p>\n<h2>Kombinationsfeld zum Filtern<\/h2>\n<p>Genau nach den Daten dieses Feldes wollen wir nun &uuml;ber ein Kombinationsfeld im Hauptformular filtern. Das bedeutet, dass wir im Kombinationsfeld alle Datens&auml;tze der Tabelle <b>tblKategorien<\/b> anbieten. Dieses Kombinationsfeld platzieren wir wie in Bild 1 oben im Formular und legen die Bezeichnung <b>cboKategorien <\/b>fest.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_249_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_249_001.png\" alt=\"Kombinationsfeld zum Filtern nach einer Kategorie\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Kombinationsfeld zum Filtern nach einer Kategorie<\/p>\n<p>Damit dieses alle Kategorien anzeigt, stellen wir die Eigenschaft <b>Datensatzherkunft <\/b>auf eine entsprechende Abfrage ein. Diese sieht wie in Bild 2 aus. Die Abfrage liefert alle Datens&auml;tze der Tabelle <b>tblKategorien<\/b>, wobei diese nach dem Wert des Feldes <b>Kategorie <\/b>aufsteigend sortiert werden.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_249_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_249_002.png\" alt=\"Datensatzherkunft des Kombinationsfeldes cboKategorien\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Datensatzherkunft des Kombinationsfeldes cboKategorien<\/p>\n<p>Damit das Kombinationsfeld nur das Feld mit den Bezeichnungen der Kategorien anzeigt, aber nicht den Inhalt des Prim&auml;rschl&uuml;sselfeldes, stellen Sie au&szlig;erdem die Eigenschaft <b>Spaltenanzahl <\/b>auf den Wert <b>2 <\/b>und <b>Spaltenbreiten <\/b>auf <b>0cm <\/b>ein. Dadurch ist das Feld <b>KategorieID<\/b> zwar Bestandteil der Datensatzherkunft des Kombinationsfeldes und liefert auch den Wert der gebundenen Spalte des ausgew&auml;hlten Datensatzes, aber es ist nicht sichtbar. Das Kombinationsfeld zeigt seine Daten nun wie in Bild 3 an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_249_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_249_003.png\" alt=\"Auswahl einer der Kategorien als Filter f&uuml;r die angezeigten Datens&auml;tze im Unterformular\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Auswahl einer der Kategorien als Filter f&uuml;r die angezeigten Datens&auml;tze im Unterformular<\/p>\n<h2>Unterformular filtern<\/h2>\n<p>Nun soll das Unterformular nach der Auswahl nur die Artikel anzeigen, die zur ausgew&auml;hlten Kategorie geh&ouml;ren.<\/p>\n<p>Zum Verst&auml;ndnis sind zwei Hinweise notwendig: Sowohl das Kombinationsfeld zur Auswahl der als Filter zu verwendenden Kategorie als auch das Feld mit der jeweiligen Kategorie der Artikel im Unterformular enthalten nicht die Kategorien, sondern lediglich die Prim&auml;rschl&uuml;sselfelder der Werte der Tabelle <b>tblKategorien<\/b>.<\/p>\n<p>Wir m&uuml;ssen also den Filter f&uuml;r die Datenherkunft des Unterformulars so einstellen, dass das Feld <b>KategorieID <\/b>als Vergleichswert den Zahlenwert aus dem Kombinationsfeld <b>cboKategorien <\/b>erh&auml;lt.<\/p>\n<p>Die Kurzfassung erfordert lediglich zwei Befehle (siehe Listing 1). Der erste stellt die Eigenschaft <b>Filter <\/b>des im Unterformularsteuerelements (<b>sfm-Ar-ti-keluebersicht<\/b>) enthaltenen For-mulars (<b>Form<\/b>) im aktuellen Formular (<b>Me<\/b>) auf den folgenden Ausdruck ein:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cboKategorien_AfterUpdate()\r\n     Me!sfmArtikeluebersicht.Form.Filter = \"KategorieID = \" & Me!cboKategorien\r\n     Me!sfmArtikeluebersicht.Form.FilterOn = <span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 1: Unterformular nach einem Wert eines Steuerelements im Hauptformular filtern<\/p>\n<pre>\"KategorieID = \" & Me!cboKategorien<\/pre>\n<p>Wenn das Kombinationsfeld (<b>Me!cboKategorien<\/b>) beispielsweise den Wert <b>1 <\/b>enth&auml;lt, sieht der Filterausdruck so aus:<\/p>\n<pre>KategorieID = 1<\/pre>\n<p>Der zweite Befehl aktiviert den Filter, indem er die Eigenschaft <b>FilterOn <\/b>auf den Wert <b>True <\/b>einstellt.<\/p>\n<p>Dies lie&szlig;e sich noch etwas &uuml;bersichtlicher formulieren (siehe Listing 2). Wenn Sie beginnen, in VBA mit Ausdr&uuml;cken wie mit diesem Filterausdruck zu arbeiten, sollten Sie den Filterausdruck bei Bedarf im Direktfenster ausgeben k&ouml;nnen. Dazu verwenden wir hier die Variable <b>strFilter<\/b>. Diese f&uuml;llt die Prozedur zun&auml;chst mit dem ausgewerteten Ausdruck <b>&#8222;Kategorie = &#8220; &#038; Me!cboKategorien <\/b>und gibt dann den Inhalt der Variablen im Direktfenster aus (zum Beispiel <b>Kategorie = 1<\/b>).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cboKategorien_AfterUpdate()\r\n     <span style=\"color:blue;\">Dim <\/span>strFilter<span style=\"color:blue;\"> As String<\/span>\r\n     strFilter = \"KategorieID = \" & Me!cboKategorien\r\n     <span style=\"color:blue;\">Debug.Print<\/span> strFilter\r\n     <span style=\"color:blue;\">With<\/span> Me!sfmArtikeluebersicht.Form\r\n         .Filter = strFilter\r\n         .FilterOn = <span style=\"color:blue;\">True<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 2: &uuml;bersichtlichere Variante mit der M&ouml;glichkeit, den Filterausdruck im Direktfenster auszugeben<\/p>\n<p>Anschlie&szlig;end haben wir die beiden doch eher l&auml;nglichen Ausdr&uuml;cke zum Zuweisen und Aktivieren des Filters entzerrt, indem wir mit der <b>With<\/b>-Anweisung das Objekt benennen, auf das sich die folgenden Eigenschaften beziehen. Wie Bild 4 zeigt, funktioniert das Filtern bereits wie gew&uuml;nscht.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_249_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_249_004.png\" alt=\"Filtern nach einer der Kategorien\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Filtern nach einer der Kategorien<\/p>\n<h2>Filter aufheben<\/h2>\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\/55000249\/\">\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\/55000249?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\/55000249\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"a4912ba1e1\"\/>\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>Wenn Sie ein Kombinationsfeld etwa zum Filtern von Artikeln nach einer bestimmten Kategorie verwenden, k&ouml;nnen Sie jeweils eine Gruppe von Artikeln anzeigen. Was aber, wenn Sie anschlie&szlig;end wieder alle Artikel anzeigen m&ouml;chten F&uuml;r diesen Fall k&ouml;nnen Sie dem Kombinationsfeld einen Eintrag etwa mit dem Wert <b><Alle anzeigen> <\/b>hinzuf&uuml;gen. Dessen Auswahl f&uuml;hrt dann zur Aufhebung des jeweiligen Filters. Wir zeigen Ihnen, wie dies funktioniert.<\/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,44000010],"tags":[],"class_list":["post-55000249","post","type-post","status-publish","format-standard","hentry","category-662014","category-66062014","category-Formulare_mit_VBA_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>Datens&auml;tze filtern per Kombinationsfeld - Access [basics]<\/title>\n<meta name=\"description\" content=\"Wenn Sie ein Kombinationsfeld etwa zum Filtern von Artikeln nach einer bestimmten Kategorie verwenden, k\u00f6nnen Sie jeweils eine Gruppe von Artikeln anzeigen. Was aber, wenn Sie anschlie\u00dfend wieder alle Artikel anzeigen m\u00f6chten? F\u00fcr diesen Fall k\u00f6nnen Sie dem Kombinationsfeld einen Eintrag etwa mit dem Wert hinzuf\u00fcgen. Dessen Auswahl f\u00fchrt dann zur Aufhebung des jeweiligen Filters. Wir zeigen Ihnen, wie dies funktioniert.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datens&auml;tze filtern per Kombinationsfeld - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie ein Kombinationsfeld etwa zum Filtern von Artikeln nach einer bestimmten Kategorie verwenden, k\u00f6nnen Sie jeweils eine Gruppe von Artikeln anzeigen. Was aber, wenn Sie anschlie\u00dfend wieder alle Artikel anzeigen m\u00f6chten? F\u00fcr diesen Fall k\u00f6nnen Sie dem Kombinationsfeld einen Eintrag etwa mit dem Wert hinzuf\u00fcgen. Dessen Auswahl f\u00fchrt dann zur Aufhebung des jeweiligen Filters. Wir zeigen Ihnen, wie dies funktioniert.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.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_249_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=\"11\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\/Datensaetze_filtern_per_Kombinationsfeld.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_249_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html\",\"name\":\"Datens&auml;tze filtern per Kombinationsfeld - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.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\":\"Wenn Sie ein Kombinationsfeld etwa zum Filtern von Artikeln nach einer bestimmten Kategorie verwenden, k\\u00f6nnen Sie jeweils eine Gruppe von Artikeln anzeigen. Was aber, wenn Sie anschlie\\u00dfend wieder alle Artikel anzeigen m\\u00f6chten? F\\u00fcr diesen Fall k\\u00f6nnen Sie dem Kombinationsfeld einen Eintrag etwa mit dem Wert hinzuf\\u00fcgen. Dessen Auswahl f\\u00fchrt dann zur Aufhebung des jeweiligen Filters. Wir zeigen Ihnen, wie dies funktioniert.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.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\/Datensaetze_filtern_per_Kombinationsfeld.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Datensaetze_filtern_per_Kombinationsfeld.html\",\"name\":\"Datens&auml;tze filtern per Kombinationsfeld\"}}]},{\"@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\/55000249","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=55000249"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000249\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}