{"id":55000114,"date":"2012-08-01T00:00:00","date_gmt":"2020-01-24T15:58:11","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=114"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Listenfeldauswahl_speichern_und_wiederherstellen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html","title":{"rendered":"Listenfeldauswahl speichern und wiederherstellen"},"content":{"rendered":"<p class='introduction'>Wie Sie die durch einen Benutzer ausgew&auml;hlten Eintr&auml;gen im Listenfeld auslesen, haben Sie bereits im Artikel &#8222;Mehrfachauswahl in Listenfeldern auslesen&#8220; erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu m&uuml;ssen wir diese Auswahl jedoch erst einmal speichern &#8211; und sp&auml;ter k&uuml;mmern wir uns um die Reproduktion <\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1204_Mehrfachauswahl.mdb<\/b>.<\/p>\n<h2>Listenfeldauswahl ganz einfach<\/h2>\n<p>Normalerweise k&ouml;nnen Sie Listenfelder, genau wie Kombinationsfelder, mit einer Datensatzherkunft versehen (also etwa mit einer Tabelle oder Abfrage, welche die Daten liefert) und das Steuerelement &uuml;ber die Eigenschaft Steuerelementinhalt an ein Feld einer weiteren Tabelle binden.<\/p>\n<p>Ein Beispiel ist die Auswahl einer Anrede f&uuml;r einen Kunden. Normalerweise verwenden Sie hier ein Kombinationsfeld, aber Sie k&ouml;nnen dies &#8211; ausreichend Platz vorausgesetzt &#8211; auch mit einem Listenfeld erledigen. Der Vorteil ist, dass man alle zur Auswahl stehenden Eintr&auml;ge direkt sehen kann &#8211; zumindest, wenn es nicht mehr Eintr&auml;ge gibt, als das Listenfeld im sichtbaren Bereich anzeigen kann (siehe Bild 1). Das Listenfeld ist mit der Tabelle <b>tblAnreden <\/b>als Datensatzherkunft ausgestattet und es ist an das Feld <b>AnredeID <\/b>der im Formular angezeigten Tabelle <b>tblKunden <\/b>gebunden. Damit das Listenfeld nur die Anrede, nicht aber die Werte des Feldes <b>AnredeID <\/b>anzeigt, stellen Sie die Eigenschaften <b>Spaltenanzahl <\/b>und <b>Spaltenbreite <\/b>auf die Werte <b>2 <\/b>und <b>0cm <\/b>ein. So wird das erste Feld mit der <b>AnredeID <\/b>ausgeblendet. Dieses muss aber dennoch als gebundene Spalte vorliegen: Access sucht n&auml;mlich in der Tabelle <b>tblAnreden <\/b>nach dem Datensatz, dessen als gebundene Spalte angegebenes Feld den gleichen Wert enth&auml;lt wie das in der Eigenschaft <b>Steuerelementinhalt <\/b>angegebene Feld, also das Feld <b>AnredeID <\/b>der Tabelle <b>tblKunden<\/b>.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_114_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_114_001.png\" alt=\"Lookup-Daten per Listenfeld ausw&auml;hlen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Lookup-Daten per Listenfeld ausw&auml;hlen<\/p>\n<p>Damit haben Sie gleich zwei Fliegen mit einer Klappe geschlagen: Erstens wird die Auswahl so automatisch gespeichert und zweitens wird sie beim Anzeigen eines Datensatzes auch gleich wieder hergestellt.<\/p>\n<h2>Mehrfachauswahl speichern<\/h2>\n<p>Schauen wir uns nun an, wie sich dies f&uuml;r die Mehrfachauswahl realisieren l&auml;sst. Wenn Sie dies mit der Mehrfachauswahl durchf&uuml;hren, ist der Aufwand schon erheblich h&ouml;her.<\/p>\n<p>Als Beispiel verwenden wir das Zuweisen von Publikationen zu Kunden, als eine Art Verteilerliste. Dazu ben&ouml;tigen wir drei Tabellen: erstens eine Tabelle <b>tblKunden <\/b>zum Speichern der Kundendaten, zweitens die Tabelle <b>tblPublikationen <\/b>und noch eine dritte Tabelle, mit der wir die Publikationen den Kunden zuweisen. Damit realisieren wir eine m:n-Beziehung zwischen den Tabellen <b>tblKunden <\/b>und <b>tblPublikationen<\/b>. Dies bedeutet, dass wir &uuml;ber die dritte Tabelle, die wir schlicht <b>tblVerteiler <\/b>nennen, jede Publikation jedem Kunden zuordnen k&ouml;nnen. Das Datenmodell sieht wie in Bild 2 aus. Dabei enth&auml;lt die Tabelle <b>tblVerteiler <\/b>zwei Fremdschl&uuml;sselfelder, mit denen Sie je Datensatz einen Eintrag der Tabelle <b>tblKunden <\/b>und einen Eintrag der Tabelle <b>tblPublikationen <\/b>ausw&auml;hlen k&ouml;nnen. Damit kein Kunde eine Publikation doppelt erh&auml;lt, haben wir au&szlig;erdem einen eindeutigen Index f&uuml;r die beiden Felder <b>PublikationID <\/b>und <b>KundeID <\/b>festgelegt (siehe Bild 3).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_114_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_114_003.png\" alt=\"Eindeutiger Index f&uuml;r die Kombination aus Kunde und Publikation\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Eindeutiger Index f&uuml;r die Kombination aus Kunde und Publikation<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_114_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_114_002.png\" alt=\"Datenmodell f&uuml;r den Publikationsverteiler\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Datenmodell f&uuml;r den Publikationsverteiler<\/p>\n<h2>Formular zur Auswahl von Publikationen<\/h2>\n<p>Mit diesen Tabellen ausgestattet k&ouml;nnen wir uns an den Entwurf des Formulars zur Auswahl der Publikationen je Benutzer begeben. Das Formular soll <b>frmVerteiler <\/b>hei&szlig;en und verwendet die Tabelle <b>tblKunden <\/b>als Datenherkunft. Ziehen Sie die notwendigsten Felder der Tabelle <b>tblKunden <\/b>in den Detailbereich und f&uuml;gen Sie dem Formular ein Listenfeld namens <b>lstPublikationen <\/b>hinzu. Das sind vorerst alle notwendigen Steuerelemente, das Formular sollte nun so aussehen wie in Bild 4.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_114_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_114_004.png\" alt=\"Entwurf des Formulars zum Festlegen der Verteilerlisten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Entwurf des Formulars zum Festlegen der Verteilerlisten<\/p>\n<p>Nun k&uuml;mmern wir uns um die im Listenfeld angezeigten Daten. Eigentlich soll das Listenfeld nur die Liste aller Publikationen anzeigen. Aber wir ben&ouml;tigen doch noch Informationen dar&uuml;ber, ob eine Publikation &uuml;ber die Tabelle <b>tblVerteiler <\/b>einem Kunden zugewiesen wurde Das stimmt prinzipiell. Allerdings ben&ouml;tigen wir diese Information nur zum Markieren der zugeteilten Publikationen. Es werden jedoch immer alle Publikationen angezeigt &#8211; wir brauchen das Listenfeld <b>lstPublikationen<\/b> also einfach nur mit der Tabelle <b>tblPublikationen <\/b>als Datensatzherkunft zu versehen. Markieren Sie also das Listenfeld im Formularentwurf und stellen Sie die Eigenschaft <b>Datensatzherkunft <\/b>entsprechend ein. Au&szlig;erdem soll nur die Publikation, nicht aber die <b>Publikation-ID <\/b>erscheinen. Dies erreichen wir durch Setzen der Eigenschaften <b>Spaltenanzahl <\/b>und <b>Spaltenbreiten <\/b>auf die Werte <b>2 <\/b>und <b>0cm<\/b>. Stellen Sie au&szlig;erdem die Eigenschaft Mehrfachauswahl auf <b>Einfach <\/b>ein (oder <b>Erweitert<\/b> &#8211; je nach Anforderung). Das Formular bietet bereits jetzt die M&ouml;glichkeit, eine oder mehrere Publikationen je Kunde auszuw&auml;hlen &#8211; allerdings werden diese weder gespeichert noch &auml;ndert sich die Auswahl beim Anzeigen des n&auml;chsten Kunden (siehe Bild 5).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_114_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_114_005.png\" alt=\"Das Formular zum Festlegen von Verteilerlisten in der Formularansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Das Formular zum Festlegen von Verteilerlisten in der Formularansicht<\/p>\n<h2>Auswahl speichern<\/h2>\n<p>Nun wird es interessant: Die Auswahl soll nun gespeichert und beim Anzeigen eines Kunden wieder hergestellt werden. Zum Speichern gibt es grunds&auml;tzlich zwei M&ouml;glichkeiten:<\/p>\n<ul>\n<li>Alle ausgew&auml;hlten Publikationen eines Kunden werden beim Wechseln des Datensatzes beziehungsweise beim Schlie&szlig;en des Formulars gespeichert.<\/li>\n<li>Jede Publikation wird gleich beim Ausw&auml;hlen gespeichert.<\/li>\n<\/ul>\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\/55000114\/\">\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\/55000114?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\/55000114\/\"\/>\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>Wie Sie die durch einen Benutzer ausgew&auml;hlten Eintr&auml;gen im Listenfeld auslesen, haben Sie bereits im Artikel &#8222;Mehrfachauswahl in Listenfeldern auslesen&#8220; erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu m&uuml;ssen wir diese Auswahl jedoch erst einmal speichern &#8211; und sp&auml;ter k&uuml;mmern wir uns um die Reproduktion <\/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":[662012,66042012,44000004],"tags":[],"class_list":["post-55000114","post","type-post","status-publish","format-standard","hentry","category-662012","category-66042012","category-Formulare_fuer_die_Dateneingabe"],"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>Listenfeldauswahl speichern und wiederherstellen - Access [basics]<\/title>\n<meta name=\"description\" content=\"Wie Sie die durch einen Benutzer ausgew\u00e4hlten Eintr\u00e4gen im Listenfeld auslesen, haben Sie bereits im Artikel &quot;Mehrfachauswahl in Listenfeldern auslesen&quot; erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu m\u00fcssen wir diese Auswahl jedoch erst einmal speichern \u2013 und sp\u00e4ter k\u00fcmmern wir uns um die Reproduktion\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Listenfeldauswahl speichern und wiederherstellen - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Wie Sie die durch einen Benutzer ausgew\u00e4hlten Eintr\u00e4gen im Listenfeld auslesen, haben Sie bereits im Artikel &quot;Mehrfachauswahl in Listenfeldern auslesen&quot; erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu m\u00fcssen wir diese Auswahl jedoch erst einmal speichern \u2013 und sp\u00e4ter k\u00fcmmern wir uns um die Reproduktion\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:11+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_114_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=\"13\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\/Listenfeldauswahl_speichern_und_wiederherstellen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_114_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html\",\"name\":\"Listenfeldauswahl speichern und wiederherstellen - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:11+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Wie Sie die durch einen Benutzer ausgew\\u00e4hlten Eintr\\u00e4gen im Listenfeld auslesen, haben Sie bereits im Artikel \\\"Mehrfachauswahl in Listenfeldern auslesen\\\" erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu m\\u00fcssen wir diese Auswahl jedoch erst einmal speichern \\u2013 und sp\\u00e4ter k\\u00fcmmern wir uns um die Reproduktion\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.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\/Listenfeldauswahl_speichern_und_wiederherstellen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Listenfeldauswahl_speichern_und_wiederherstellen.html\",\"name\":\"Listenfeldauswahl speichern und wiederherstellen\"}}]},{\"@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\/55000114","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=55000114"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000114\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}