{"id":55000372,"date":"2017-12-01T00:00:00","date_gmt":"2020-01-24T15:59:55","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=372"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Suche_in_Lookupfeldern","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html","title":{"rendered":"Suche in Lookupfeldern"},"content":{"rendered":"<p class='introduction'>Die Suche nach Datens&auml;tzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen So wie im einfachsten Fall bei den Anreden einer Kundentabelle Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die M&ouml;glichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuw&auml;hlen. Dieser Artikel zeigt, wie das gelingt.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1706_Lookupsuche.accdb<\/b>.<\/p>\n<h2>Artikel nach Kategorie durchsuchen<\/h2>\n<p>Die Datenblattansicht von Access bietet seit einigen Access-Versionen die M&ouml;glichkeit, &uuml;ber den Pfeil nach unten ein Men&uuml; zu &ouml;ffnen, mit dem Sie alle Eintr&auml;ge des aktuellen Feldes anhaken und damit die Suche nach Datens&auml;tzen mit diesem Inhalt im entsprechenden Feld starten k&ouml;nnen (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_001.png\" alt=\"Eingebaute Suche nach einem Eintrag\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Eingebaute Suche nach einem Eintrag<\/p>\n<p>Das Ergebnis entspricht dann wie in Bild 2 genau den Erwartungen. Was aber nun, wenn wir diese Suche nicht anbieten k&ouml;nnen oder wollen und eine eigene Suche implementieren m&uuml;ssen, die so &auml;hnlich arbeitet &#8211; und in diesem Fall zumindest ein Kombinationsfeld anbieten soll, um die passenden Datens&auml;tze zu ermitteln<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_002.png\" alt=\"Suchergebnis mit eingebauter Suche\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Suchergebnis mit eingebauter Suche<\/p>\n<p>Dann ben&ouml;tigen wir zun&auml;chst ein Formular, welches das Datenblatt mit den zu durchsuchenden Datens&auml;tzen in einem Unterformular anzeigt. Dazu erstellen Sie zun&auml;chst ein Unterformular namens <b>sfmLookupsuche <\/b>und weisen der Eigenschaft <b>Datenherkunft <\/b>die Tabelle <b>tblArtikel <\/b>zu.<\/p>\n<p>Ziehen Sie dann alle Felder dieser Tabelle aus der Feldliste in den Detailbereich des Formularentwurfs und stellen Sie noch die Eigenschaft Standardansicht auf den Wert <b>Datenblatt <\/b>ein. Speichern und schlie&szlig;en Sie das Formular nun.<\/p>\n<p>Legen Sie ein neues Formulars namens <b>frmLookupsuche<\/b> an, welches als Hauptformular dienen soll. Ziehen Sie das Unterformular <b>sfmLookupsuche <\/b>aus dem Navigationsbereich in den Detailbereich des neuen Formulars. Stellen Sie die Eigenschaften <b>Navigationsschaltfl&auml;chen<\/b>, <b>Datensatzmarkierer<\/b>, <b>Bildlaufleisten <\/b>und <b>Trennlinien <\/b>des Hauptformulars auf <b>Nein <\/b>und die Eigenschaft <b>Automatisch zentrieren <\/b>auf <b>Ja <\/b>ein. F&uuml;gen Sie &uuml;ber dem Unterformular schlie&szlig;lich noch das Kombinationsfeld hinzu, mit dem wir die Suchbegriffe festlegen wollen (siehe Bild 3). Das Kombinationsfeld nennen wir <b>cboSucheLieferant<\/b>.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_003.png\" alt=\"Suchformular mit Kombinationsfeld\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Suchformular mit Kombinationsfeld<\/p>\n<h2>Filterausdruck ermitteln<\/h2>\n<p>Wenn Sie wissen wollen, welchen Filterausdruck Access automatisch einstellt, wenn Sie mit der eingebauten Filterm&ouml;glichkeit arbeiten wollen, welche wir eingangs vorgestellt haben, brauchen Sie nur das Formular zu &ouml;ffnen und den Filter festzulegen.<\/p>\n<p>Nun &ouml;ffnen Sie den VBA-Editor und geben im Direktbereich einen Ausdruck ein, der den aktuellen Wert der <b>Filter<\/b>-Eigenschaft des Unterformulars ausgibt:<\/p>\n<pre> Forms(0).sfmLookupsuche.form.filter<\/pre>\n<p>Die Ausgabe lautet wie folgt:<\/p>\n<pre>([Lookup_LieferantID].[Firma]=\"Bigfoot Breweries\")<\/pre>\n<p>Was ist nun <b>[Lookup_LieferantID].[Firma] <\/b>f&uuml;r ein Ausdruck Wir konnten es nicht herausfinden. Selbst wenn wir den Code des Formulars mit der folgenden Methode in eine Textdatei exportiert haben, konnten wir diese Zeichenfolge nicht finden:<\/p>\n<pre>SaveAsText acForm, \"sfmLookupsuche\", CurrentProject.Path & \"\\form.txt\"<\/pre>\n<p>Fest steht jedenfalls, dass Access wohl hier irgendwie auf ein Recordset zugreift, das sich hinter dem Kombinationsfeld zur Auswahl des Lieferanten verbirgt und diesen als Feld im Filterausdruck einsetzt.<\/p>\n<h2>Kombinationsfeld mit Daten f&uuml;llen<\/h2>\n<p>Wie auch immer: Wir k&ouml;nnen uns nicht auf irgendwelche nirgends offensichtlich definierten Feldnamen beziehen, wenn wir programmieren, und f&uuml;llen zun&auml;chst unser Kombinationsfeld mit den Daten, die wir zur Suche nach den Lieferanten ausw&auml;hlen wollen.<\/p>\n<p>Dazu stellen wir die Eigenschaft <b>Datensatzherkunft <\/b>des Kombinationsfeldes auf die Abfrage aus Bild 4 ein. Damit es das Prim&auml;rschl&uuml;sselfeld als gebundene Spalte verwendet und diese aber ausblendet, stellen sie die Eigenschaft <b>Spaltenanzahl <\/b>auf den Wert <b>2 <\/b>und die Eigenschaft <b>Spaltenbreiten <\/b>auf den Wert <b>0cm <\/b>ein. Das Zwischenergebnis sieht dann wie in Bild 5 aus.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_005.png\" alt=\"Das Kombinationsfeld im Einsatz\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Das Kombinationsfeld im Einsatz<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_004.png\" alt=\"Abfrage als Datensatzherkunft f&uuml;r das Such-Kombinationsfeld\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Abfrage als Datensatzherkunft f&uuml;r das Such-Kombinationsfeld<\/p>\n<p>Nun m&uuml;ssen wir noch eine Ereignisprozedur hinzuf&uuml;gen, die nach der Auswahl eines der Eintr&auml;ge des Kombinationsfeldes ausgel&ouml;st wird und die Daten des Datenblatts entsprechend des Filterkriteriums filtert.<\/p>\n<p>Dazu stellen Sie f&uuml;r die Eigenschaft Nach <b>Aktualisierung <\/b>des Kombinationsfeldes den Wert <b>[Ereignisprozedur] <\/b>ein und klicken auf die Schaltfl&auml;che mit den drei Punkten (&#8230;) neben der Eigenschaft.<\/p>\n<p>Dies &ouml;ffnet den VBA-Editor und zeigt gleich die neue, leere Prozedur <b>cboSucheLieferanten_AfterUpdate <\/b>an (siehe Bild 6). Diese f&uuml;llen wir nun wie folgt:<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_372_006.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_372_006.png\" alt=\"Neue Ereignisprozedur im VBA-Editor\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 6: Neue Ereignisprozedur im VBA-Editor<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cboSucheLieferant_AfterUpdate()\r\n    <span style=\"color:blue;\">Dim <\/span>lngLieferantID<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>strSQL<span style=\"color:blue;\"> As String<\/span>\r\n    lngLieferantID = Nz(Me!cboSucheLieferant, 0)\r\n    <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> lngLieferantID = 0<span style=\"color:blue;\"> Then<\/span>\r\n        strSQL = \"LieferantID = \" & lngLieferantID\r\n        Me!sfmLookupsuche.Form.Filter = strSQL\r\n        Me!sfmLookupsuche.Form.FilterOn = <span style=\"color:blue;\">True<\/span>\r\n    <span style=\"color:blue;\">Else<\/span>\r\n        Me!sfmLookupsuche.Form.Filter = \"\"\r\n    <span style=\"color:blue;\">End If<\/span>\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\/55000372\/\">\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\/55000372?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\/55000372\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"cbd3f36316\"\/>\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>Die Suche nach Datens&auml;tzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen So wie im einfachsten Fall bei den Anreden einer Kundentabelle Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die M&ouml;glichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuw&auml;hlen. Dieser Artikel zeigt, wie das gelingt.<\/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,66062017,44000010],"tags":[],"class_list":["post-55000372","post","type-post","status-publish","format-standard","hentry","category-662017","category-66062017","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>Suche in Lookupfeldern - Access [basics]<\/title>\n<meta name=\"description\" content=\"Die Suche nach Datens\u00e4tzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen? So wie im einfachsten Fall bei den Anreden einer Kundentabelle? Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die M\u00f6glichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuw\u00e4hlen. Dieser Artikel zeigt, wie das gelingt.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Suche in Lookupfeldern - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Die Suche nach Datens\u00e4tzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen? So wie im einfachsten Fall bei den Anreden einer Kundentabelle? Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die M\u00f6glichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuw\u00e4hlen. Dieser Artikel zeigt, wie das gelingt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:55+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_372_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\/Suche_in_Lookupfeldern.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_372_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html\",\"name\":\"Suche in Lookupfeldern - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:55+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Die Suche nach Datens\\u00e4tzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen? So wie im einfachsten Fall bei den Anreden einer Kundentabelle? Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die M\\u00f6glichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuw\\u00e4hlen. Dieser Artikel zeigt, wie das gelingt.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.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\/Suche_in_Lookupfeldern.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Suche_in_Lookupfeldern.html\",\"name\":\"Suche in Lookupfeldern\"}}]},{\"@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\/55000372","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=55000372"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000372\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}