{"id":1491,"date":"2013-08-28T07:48:37","date_gmt":"2013-08-28T05:48:37","guid":{"rendered":"http:\/\/www.ramses.de\/?p=1491"},"modified":"2013-08-28T07:49:08","modified_gmt":"2013-08-28T05:49:08","slug":"faq-access-flexible-datenselektion-uber-kombinationsfeld","status":"publish","type":"post","link":"https:\/\/www.ramses.de\/?p=1491","title":{"rendered":"FAQ Access &#8211; Flexible Datenselektion \u00fcber Kombinationsfeld"},"content":{"rendered":"<div>\n<h1>Access Formulare &#8211; Flexible Datenselektion \u00fcber Kombinationsfeld<\/h1>\n<\/div>\n<div>\n<h2>Problem : Abh\u00e4ngigkeiten vom Combo<\/h2>\n<p>Access-Abfragen sind nicht nur praktisch, um sich ganz bestimmte Informationen in tabellarischer Form ausgeben zu lassen. Genauso gut eignen sie sich auch als Grundlage f\u00fcr Formulare. So k\u00f6nnen Sie beispielsweise Daten aus verschiedenen Tabellen in einer Abfrage zusammenfassen und das Ergebnis \u00fcbersichtlich in einem Formular betrachten.<\/p>\n<p>H\u00e4ufig dienen Abfragen aber auch zum Filtern von Tabellendaten, wobei Parameterabfragen besonders flexibel sind. Als Abfragekriterium tragen Sie dann einfach einen Parameternamen Ihrer Wahl ein, woraufhin Sie beim n\u00e4chsten \u00d6ffnen der Abfrage nach dem gew\u00fcnschten Wert f\u00fcr den Parameter gefragt werden. So schr\u00e4nken Sie das Ergebnis der Abfrage individuell auf bestimmte Datens\u00e4tze ein.<\/p>\n<p>Eine solche Funktionalit\u00e4t w\u00e4re in Formularen hilfreich, um zum Beispiel die angezeigten Datens\u00e4tze vom Inhalt eines Kombinationsfeldes abh\u00e4ngig zu machen. Sie brauchen dann eine M\u00f6glichkeit, den Wert im Kombinationsfeld als Parameter an die Abfrage zu \u00fcbergeben. Das ist einfacher als Sie denken, denn es gen\u00fcgt, den genauen Bezeichner (Namen) des Kombinationsfeldes als Kriterium in die Abfrage zu schreiben. Schauen Sie sich folgendes Beispiel an:<\/p>\n<h2>L\u00f6sung :<\/h2>\n<p>Nehmen Sie an, Sie h\u00e4tten eine umfangreiche Adressenliste und Sie wollten die Datens\u00e4tze anhand der Postleitzahl auf einen bestimmten Personenkreis eingrenzen. Das Ganze wollen Sie sich in einem Formular anschauen, wobei Sie die einschr\u00e4nkende Postleitzahl mit Hilfe eines Kombinationsfeldes ausw\u00e4hlen m\u00f6chten.<\/p>\n<p>Dazu legen Sie im ersten Schritt eine Abfrage an, in die Sie alle Felder aus der Adressentabelle einschlie\u00dfen, die im Formular erscheinen sollen. Danach speichern Sie die Abfrage unter dem Namen &#8222;QBPLZAuswahl&#8220;. Als n\u00e4chstes richten Sie das Formular ein, was Sie am schnellsten mit Hilfe der AutoFormular-Funktion auf Basis der Abfrage &#8222;QBPLZAuswahl&#8220; erreichen.<\/p>\n<p>Um das Kombinationsfeld zur Auswahl des Postleitzahlbereichs einzuf\u00fcgen, schalten Sie das Formular dann in die Entwurfsansicht. Das Feld selbst m\u00fcssen Sie als &#8222;ungebundenes&#8220; Steuerelement in den Formularkopf setzen. Falls dieser Bereich nicht angezeigt wird, aktivieren Sie im Men\u00fc Ansicht den Befehl Formularkopf\/-Fuss, oder passen Sie die H\u00f6he des Bereichs mit der Maus an. F\u00fcgen Sie ein Kombinationsfeld ein, wobei Sie den Assistenten gegebenenfalls abbrechen. Lassen Sie sich anschlie\u00dfend die Eigenschaften des Steuerelements anzeigen und weisen Sie ihm einen Namen zu, hier beispielsweise &#8222;PLZAuswahl&#8220;.<\/p>\n<p>Damit in dem Auswahlfeld nur die vorhandenen Postleitzahlen angezeigt und diese jeweils nur einmal aufgef\u00fchrt werden, tippen Sie in das Eigenschaftenfeld &#8222;Datensatzherkunft&#8220; folgende SQL-Anweisung:<\/p>\n<pre>SELECT TBADRESSEN.PLZ FROM TBADRESSEN<\/pre>\n<pre>GROUP BY TBADRESSEN.PLZ ORDER BY TBADRESSEN.PLZ;<\/pre>\n<p>Die Anweisung geht davon aus, dass die Tabelle mit den Adressinformationen &#8222;TBADRESSEN&#8220; und das Postleitzahlfeld &#8222;PLZ&#8220; hei\u00dfen.<br \/>\nWechseln Sie nun mit Ansicht-Code in das Codefenster des Formulars. Darin tragen Sie folgende Prozedur ein:<\/p>\n<pre>Private Sub PLZAuswahl_Change()<\/pre>\n<pre>Me.Requery<\/pre>\n<pre>End Sub<\/pre>\n<p>Die Routine sorgt daf\u00fcr, dass das Formular nach Auswahl eines anderen Kombinationsfeld-Eintrags aktualisiert wird.<\/p>\n<p>Damit sind die Vorbereitungen im Formular abgeschlossen, so dass Sie es nur noch speichern m\u00fcssen. Schlie\u00dfen Sie den Formularentwurf und speichern Sie das Objekt in diesem Fall unter dem Namen<\/p>\n<p>FOPLZBereiche.<\/p>\n<p>Was fehlt, ist das passende Kriterium in der Abfrage, die dem Formular zugrunde liegt. \u00d6ffnen Sie also die Abfrage &#8222;QBPLZAuswahl&#8220; in der Entwurfsansicht und suchen Sie die Spalte mit dem Postleitzahlfeld. Falls Sie das Feld nicht in den Abfrageentwurf eingeschlossen haben, erg\u00e4nzen Sie es jetzt. In die Kriterienzeile des Feldes geben Sie dann folgendes ein:<\/p>\n<pre>[Formulare]![FOPLZBereiche]![PLZAuswahl]<\/pre>\n<p>Das ist der vollst\u00e4ndige Name des Kombinationsfeldes mit der Postleitzahlauswahl. Somit liefert die Abfrage immer die Datens\u00e4tze, deren Postleitzahl mit dem Wert im Kombinationsfeld \u00fcbereinstimmt. Auf diese Weise k\u00f6nnen Sie jedes Formularfeld als Abfragekriterium einsetzen. Sie m\u00fcssen lediglich den kompletten Namen als Feldkriterium eintragen, und zwar in folgender Syntax:<\/p>\n<pre>[Formulare]![Formularname]![Steuerelementname]<\/pre>\n<p>Zum Testen schlie\u00dfen und speichern Sie den Abfrageentwurf, um anschlie\u00dfend das zuvor erstellte Formular zu \u00f6ffnen. Anfangs wird kein Datensatz angezeigt, da das Kombinationsfeld leer ist. Wenn Sie aber eine Postleitzahl ausw\u00e4hlen, aktualisiert Access das Formular und es erscheinen alle \u00fcbereinstimmenden Datens\u00e4tze.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Access Formulare &#8211; Flexible Datenselektion \u00fcber Kombinationsfeld Problem : Abh\u00e4ngigkeiten vom Combo Access-Abfragen sind nicht nur praktisch, um sich ganz bestimmte Informationen in tabellarischer Form &#8230; <a title=\"FAQ Access &#8211; Flexible Datenselektion \u00fcber Kombinationsfeld\" class=\"read-more\" href=\"https:\/\/www.ramses.de\/?p=1491\" aria-label=\"Mehr Informationen \u00fcber FAQ Access &#8211; Flexible Datenselektion \u00fcber Kombinationsfeld\">Weiterlesen &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,43],"tags":[58,56],"class_list":["post-1491","post","type-post","status-publish","format-standard","hentry","category-access","category-faq","tag-access-2010","tag-formulare"],"_links":{"self":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1491"}],"version-history":[{"count":2,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1491\/revisions"}],"predecessor-version":[{"id":1493,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1491\/revisions\/1493"}],"wp:attachment":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}