{"id":55000103,"date":"2012-04-01T00:00:00","date_gmt":"2020-01-24T15:58:06","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=103"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Bestellungen_in_Formularen_verwalten","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html","title":{"rendered":"Bestellungen in Formularen verwalten"},"content":{"rendered":"<p class='introduction'>Wer einmal einen Bestellvorgang auf Tabellenebene abgebildet und die entsprechenden Formulare und Berichte erstellt und verstanden hat, kann guten Gewissens behaupten, dass er kein Einsteiger mehr ist. Das Datenmodell erl&auml;utern wir im Artikel Bestellungen in Tabellen verwalten, die notwendigen Formulare stellt der vorliegende Artikel vor und um die Berichte k&uuml;mmern wir uns im Artikel Bestellungen per Bericht ausgeben &#8211; es sind also nur noch wenige Schritte bis zum n&auml;chsten Level!<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1202_BestellungenInFormularen.mdb<\/b>.<\/p>\n<h2>Bestellungen per Formular<\/h2>\n<p>Die folgenden Ausf&uuml;hrungen beziehen sich auf das Datenmodell, dass wir im Artikel <b>Bestellungen in Tabellen verwalten <\/b>erstellt haben. Dieses enth&auml;lt im wesentlichen eine Tabelle namens <b>tblBestellungen<\/b>, die grundlegende Bestellinformationen aufnimmt, eine Tabelle mit Artikeln (<b>tblArtikel<\/b>) sowie eine Tabelle namens <b>tblBestellpositionen<\/b>, mit der Sie die einzelnen Artikel einer Bestellung zuordnen k&ouml;nnen.<\/p>\n<p>F&uuml;r die Abbildung einer m:n-Beziehung bieten sich mehrere Konstellationen an, aber nur die Variante mit Haupt- und Unterformular ist sinnvoll. Dabei zeigt das Hauptformular die Daten der Tabelle <b>tblBestellungen <\/b>an.<\/p>\n<p>Das Unterformular erfasst die bei der Bestellannahme anfallenden Bestellpositionen. Sie ben&ouml;tigen eigentlich noch weitere Formulare, etwa zur Verwaltung der Kunden oder der Artikel, diese beschreiben wir jedoch in weiteren Artikeln. Der vorliegende Artikel konzentriert sich auf die Eingabe der Bestelldaten.<\/p>\n<h2>Hauptformular<\/h2>\n<p>Das Hauptformular soll jeweils einen Datensatz der Tabelle <b>tblBestellungen <\/b>erfassen und auch das Unterformular zur Eingabe der Bestellpositionen aufnehmen. Legen Sie daher zun&auml;chst ein Formular namens <b>frmBestellungen <\/b>an und weisen Sie diesem die Tabelle <b>tblBestellungen <\/b>als Datenherkunft zu.<\/p>\n<p>Ziehen Sie die drei Felder <b>BestellungID<\/b>, <b>KundeID <\/b>und <b>Bestelldatum <\/b>in den Detailbereich des Formulars (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_001.png\" alt=\"Hauptformular zur Eingabe der Bestelldaten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Hauptformular zur Eingabe der Bestelldaten<\/p>\n<p>Ausrichten und anordnen k&ouml;nnen Sie die Steuerelemente sp&auml;ter, wenn keine &auml;nderungen mehr vorgenommen werden sollen.<\/p>\n<p>Wenn Sie das Feld <b>KundeID <\/b>der Tabelle <b>tblBestellungen <\/b>wie im Artikel <b>Bestellungen in Tabellen verwalten <\/b>beschrieben als Nachschlagefeld ausgef&uuml;hrt haben, legt Access beim Hinzuf&uuml;gen des Feldes zum Formular automatisch ein Kombinationsfeld an, dass die gleichen Eigenschaften wie das entsprechende Nachschlagefeld aufweist (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_002.png\" alt=\"Auswahl des Kunden per Kombinationsfeld\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Auswahl des Kunden per Kombinationsfeld<\/p>\n<h2>Kundendaten anzeigen<\/h2>\n<p>Gegebenenfalls m&ouml;chten Sie nach der Auswahl des Kunden f&uuml;r eine Bestellung dessen aktuelle Adressdaten einsehen. F&uuml;r diesen Fall verwenden wir ein Unterformular, dass alle notwendigen Daten anzeigt. Das Formular hei&szlig;t <b>sfmKundendaten <\/b>und enth&auml;lt die Tabelle <b>tblKunden <\/b>als Datenherkunft. Ziehen Sie alle Felder dieser Tabelle au&szlig;er <b>KundeID <\/b>in den Detailbereich des Formulars und ordnen Sie diese etwa wie in Bild 3 an &#8211; wie gesagt, optische Anpassungen nehmen wir sp&auml;ter vor.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_003.png\" alt=\"Unterformular zur Anzeige der Kundendaten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Unterformular zur Anzeige der Kundendaten<\/p>\n<p>Dann schlie&szlig;en Sie das Unterformular <b>sfmKundendaten<\/b>, &ouml;ffnen das Formular <b>frmBestellungen <\/b>in der Entwurfsansicht und ziehen das Unterformular <b>sfmKundendaten <\/b>aus dem Datenbankfenster beziehungsweise Navigationsbereich in den Detailbereich des Hauptformulars. Platzieren es etwa so wie in Bild 4.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_004.png\" alt=\"Herstellen der Verkn&uuml;pfung zwischen Haupt- und Unterformular\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Herstellen der Verkn&uuml;pfung zwischen Haupt- und Unterformular<\/p>\n<p>Wenn Sie nun das Unterformular-Steuerelement markieren, zeigt das Eigenschaftsfenster auf der Registerseite <b>Daten <\/b>wahrscheinlich f&uuml;r die beiden Eigenschaften <b>Verkn&uuml;pfen von <\/b>und <b>Verkn&uuml;pfen nach <\/b>den Wert <b>KundeID <\/b>an. Sollte dies nicht der Fall sein, holen Sie diese Einstellung nach.<\/p>\n<p>Damit sorgen Sie daf&uuml;r, dass nach dem Ausw&auml;hlen eines Kunden mit dem Kombinationsfeld der entsprechende Kundendatensatz im Unterformular <b>sfm-Kundendaten <\/b>angezeigt wird (siehe Bild 5).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_005.png\" alt=\"Synchronisieren des ausgew&auml;hlten Kunden mit dem Unterformular sfmKundendaten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Synchronisieren des ausgew&auml;hlten Kunden mit dem Unterformular sfmKundendaten<\/p>\n<h2>Unterformular zur Anzeige der Bestellungen<\/h2>\n<p>Die Bestellungen werden ebenfalls in einem Unterformular angezeigt. Allerdings liegt hier keine 1:n-Beziehung wie bei den Tabellen <b>tblBestellungen <\/b>und <b>tblKunden <\/b>vor, sondern scheinbar eine m:n-Beziehung.<\/p>\n<p>Warum scheinbar Nun: Das Unterformular zur Anzeige der Bestellpositionen enth&auml;lt in der Tat nur Daten der Verkn&uuml;pfungstabelle <b>tblBestellpositionen<\/b>. Die Artikel, die &uuml;ber die Verkn&uuml;pfungstabelle mit dem Datensatz der Tabelle <b>tblBestellungen <\/b>des Hauptformulars verkn&uuml;pft werden, erscheinen nur in Form des im Nachschlagefeld <b>ArtikelID <\/b>der Tabelle <b>tblBestellpositionen <\/b>angezeigten Artikelnamens.<\/p>\n<p>Die Datenherkunft des Unterformulars <b>sfmBestellpositionen <\/b>beschr&auml;nkt sich daher auch die Tabelle <b>tblBestellpositionen<\/b> &#8211; legen Sie diese Tabelle also als Datenherkunft eines neuen Formulars namens <b>sfmBestellpositionen <\/b>fest.<\/p>\n<p>Ziehen Sie die Felder <b>ArtikelID<\/b>, <b>Einzelpreis<\/b>, <b>Mehrwertsteuersatz<\/b>, <b>Anzahl <\/b>und <b>Rabatt <\/b>in den Entwurf des Formulars <b>sfmBestellpositionen<\/b> (siehe Bild 6).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_103_006.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_103_006.png\" alt=\"Unterformular zur Eingabe von Bestellpositionen\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 6: Unterformular zur Eingabe von Bestellpositionen<\/p>\n<p>Stellen Sie au&szlig;erdem die Eigenschaft <b>Standardansicht <\/b>f&uuml;r dieses Formular auf den Wert <b>Datenblatt <\/b>ein. Diese Ansicht zeigt alle Steuerelemente an, die sich im Detailbereich des Formulars befinden, daher d&uuml;rfen Sie Felder wie <b>BestellpositionID <\/b>oder <b>BestellungID <\/b>gar nicht erst hinzu. Es reicht, wenn diese in der Datenherkunft enthalten sind, um etwa den Inhalt des Unterformulars &uuml;ber das Fremdschl&uuml;sselfeld <b>BestellungID <\/b>des Unterformulars mit dem Hauptformular zu verkn&uuml;pfen.<\/p>\n<p>Beachten Sie, dass auch hier das Feld <b>ArtikelID <\/b>als Kombinationsfeld ausgef&uuml;hrt wird. Auf diese Weise k&ouml;nnen Sie sp&auml;ter leicht den gew&uuml;nschten Artikel zu einer Bestellung hinzuf&uuml;gen.<\/p>\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\/55000103\/\">\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\/55000103?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\/55000103\/\"\/>\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>Wer einmal einen Bestellvorgang auf Tabellenebene abgebildet und die entsprechenden Formulare und Berichte erstellt und verstanden hat, kann guten Gewissens behaupten, dass er kein Einsteiger mehr ist. Das Datenmodell erl&auml;utern wir im Artikel Bestellungen in Tabellen verwalten, die notwendigen Formulare stellt der vorliegende Artikel vor und um die Berichte k&uuml;mmern wir uns im Artikel Bestellungen per Bericht ausgeben &#8211; es sind also nur noch wenige Schritte bis zum n&auml;chsten Level!<\/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":[66022012,662012,44000004],"tags":[],"class_list":["post-55000103","post","type-post","status-publish","format-standard","hentry","category-66022012","category-662012","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>Bestellungen in Formularen verwalten - Access [basics]<\/title>\n<meta name=\"description\" content=\"Wer einmal einen Bestellvorgang auf Tabellenebene abgebildet und die entsprechenden Formulare und Berichte erstellt und verstanden hat, kann guten Gewissens behaupten, dass er kein Einsteiger mehr ist. Das Datenmodell erl\u00e4utern wir im Artikel Bestellungen in Tabellen verwalten, die notwendigen Formulare stellt der vorliegende Artikel vor und um die Berichte k\u00fcmmern wir uns im Artikel Bestellungen per Bericht ausgeben \u2013 es sind also nur noch wenige Schritte bis zum n\u00e4chsten Level!\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bestellungen in Formularen verwalten - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Wer einmal einen Bestellvorgang auf Tabellenebene abgebildet und die entsprechenden Formulare und Berichte erstellt und verstanden hat, kann guten Gewissens behaupten, dass er kein Einsteiger mehr ist. Das Datenmodell erl\u00e4utern wir im Artikel Bestellungen in Tabellen verwalten, die notwendigen Formulare stellt der vorliegende Artikel vor und um die Berichte k\u00fcmmern wir uns im Artikel Bestellungen per Bericht ausgeben \u2013 es sind also nur noch wenige Schritte bis zum n\u00e4chsten Level!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:06+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_103_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=\"12\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\/Bestellungen_in_Formularen_verwalten.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_103_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html\",\"name\":\"Bestellungen in Formularen verwalten - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:06+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Wer einmal einen Bestellvorgang auf Tabellenebene abgebildet und die entsprechenden Formulare und Berichte erstellt und verstanden hat, kann guten Gewissens behaupten, dass er kein Einsteiger mehr ist. Das Datenmodell erl\\u00e4utern wir im Artikel Bestellungen in Tabellen verwalten, die notwendigen Formulare stellt der vorliegende Artikel vor und um die Berichte k\\u00fcmmern wir uns im Artikel Bestellungen per Bericht ausgeben \\u2013 es sind also nur noch wenige Schritte bis zum n\\u00e4chsten Level!\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.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\/Bestellungen_in_Formularen_verwalten.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Bestellungen_in_Formularen_verwalten.html\",\"name\":\"Bestellungen in Formularen verwalten\"}}]},{\"@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\/55000103","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=55000103"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000103\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}