{"id":88032026,"date":"2019-11-08T11:47:22","date_gmt":"2019-11-08T11:47:22","guid":{"rendered":"http:\/\/access-basics.de\/index.php\/88032026.html"},"modified":"2019-11-08T11:47:22","modified_gmt":"2019-11-08T11:47:22","slug":"88032026","status":"publish","type":"page","link":"https:\/\/access-basics.de\/index.php\/88032026","title":{"rendered":"Access [basics] Ausgabe 03\/2026"},"content":{"rendered":"<div class=\"rcp_restricted\"><\/p>\n<p><b>Registrierte Abonnenten finden an dieser Stelle den Download der kompletten Ausgabe im PDF-Format und die Beispieldateien.<\/b><\/p>\n<p>\n<\/div>\n<h3>Berichte [basics]: Unterberichte einsetzen<\/h3>\n<p>Bisher haben wir Berichte gebaut, die Daten aus verkn\u00fcpften Tabellen \u00fcber eine Gruppierung strukturieren \u2013 der Leser im Gruppenkopf, seine Ausleihen darunter. Das funktioniert tadellos, solange es <b>eine<\/b> Liste je Datensatz gibt. Sobald es zwei werden, bricht das Verfahren zusammen, und zwar so unauff\u00e4llig, dass man es leicht \u00fcbersieht. Wir bauen deshalb einen Steckbrief f\u00fcr B\u00fccher \u2013 mit den Autoren <b>und<\/b> der Ausleihhistorie \u2013, sehen zu, wie er scheitert, und l\u00f6sen das Problem mit Unterberichten. Wie das gelingt, liest Du in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Berichte_basics_Unterberichte_einsetzen.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Formulare [basics]: Detailform \u00f6ffnen und auswerten<\/h3>\n<p>Im vorigen Artikel haben wir ein Hauptformular mit einem Unterformular in der Datenblattansicht erstellt. Neue Datens\u00e4tze wurden direkt in der Datenblattzeile angelegt. Das funktioniert gut f\u00fcr einfache Tabellen, st\u00f6\u00dft aber schnell an Grenzen, wenn viele Felder zu f\u00fcllen sind oder Nachschlagefelder und Anlagefelder \u00fcbersichtlich dargestellt werden sollen. In diesem Artikel erweitern wir das Formular um ein modales Detailformular, das alle Felder der Tabelle <b>tblBuecher<\/b> komfortabel in der normalen Formularansicht anzeigt.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Formulare_basics_Detailform_oeffnen_und_auswerten.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Berichte [basics]: 1:n-Daten im Bericht ausgeben<\/h3>\n<p>In Formularen ist die Sache bei unserer Beispieldatenbank \u00bbB\u00fccherverwaltung\u00ab klar: Sollen zu jedem Leser seine Ausleihen erscheinen, legen wir ein Hauptformular f\u00fcr die Leser an und setzen ein Unterformular f\u00fcr die Ausleihen hinein. Wer diesen Weg in einen Bericht \u00fcbertragen will, sucht folgerichtig nach dem Unterbericht \u2013 und f\u00e4hrt damit einen Umweg. Berichte l\u00f6sen das Problem anders, n\u00e4mlich mit einer einzigen Abfrage und einer Gruppierung. Warum das so ist, wie es Schritt f\u00fcr Schritt gelingt und welche Stolpersteine dabei auf uns warten, liest Du in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Berichte_basics_1nDaten_im_Bericht_ausgeben.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Berichte [basics]: Wiederholte Werte ausblenden<\/h3>\n<p>Im Artikel <b>Berichte [basics]: 1:n-Daten im Bericht ausgeben <\/b>(<b>www.access-basics.de\/****<\/b>) haben wir Leser und Ausleihen \u00fcber eine Gruppierung getrennt: der Leser im Gruppenkopf, seine Ausleihen darunter. Manchmal will man aber gar keine Bl\u00f6cke, sondern eine schlichte Liste \u2013 eine Zeile je Ausleihe, den Lesernamen links daneben, so wie man es aus einer Tabellenkalkulation kennt. Nur steht der Name dann in jeder Zeile erneut. Access bietet daf\u00fcr eine Eigenschaft an, die genau das abstellt \u2013 und die t\u00fcckischer ist, als ihr Name vermuten l\u00e4sst. Was sie kann, was sie nicht kann und wie Du ihr die entscheidende Schw\u00e4che austreibst, liest Du in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Berichte_basics_Wiederholte_Werte_ausblenden.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Formulare [basics]: Steuerelemente korrekt benennen<\/h3>\n<p>Wenn wir mit Kunden zusammenarbeiten, schauen wir uns auch immer die Datenbanken einmal genau an. Was uns dabei oft auff\u00e4llt: Die Benennung von Steuerelementen wird \u00e4u\u00dferst stiefm\u00fctterlich gehandhabt. Das bedeutet, dass diese nach dem Anlegen einfach gar nicht umbenannt werden. Das f\u00fchrt dazu, dass wir in diesen Formularen viele Steuerelemente vorfinden, die einfach <b>Text0<\/b>, <b>Text1<\/b>, <b>Befehl2 <\/b>der <b>Kombinationsfeld43 <\/b>hei\u00dfen. Wenn Steuerelement \u00fcberhaupt einen aussagekr\u00e4ftigen Namen erhalten, handelt es sich um gebundene Felder, die aus der Feldliste ins Formular gezogen wurden. Diese hei\u00dfen dann immerhin <b>KundeID<\/b>, <b>Vorname <\/b>oder <b>Nachname<\/b>. Dieser Artikel beschreibt, wie man Steuerelemente optimal benennt \u2013 und welche Vorteile dies bietet.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Formulare_basics_Steuerelemente_korrekt_benennen.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Tabellen [basics]: Eingabe erforderlich\/Leere \u00adZeichenfolge<\/h3>\n<p>Beim Aufbau des Datenmodells sind wir an jedem Textfeld an zwei Eigenschaften vorbeigekommen, die eng zusammenh\u00e4ngen und doch st\u00e4ndig verwechselt werden: Eingabe erforderlich<\/b> und <b>Leere Zeichenfolge<\/b>. Die erste kennt fast jeder, die zweite steht meist auf ihrem Standardwert, ohne dass jemand dar\u00fcber nachdenkt. Dabei entscheiden die beiden gemeinsam, welche Zust\u00e4nde ein Feld \u00fcberhaupt annehmen darf \u2013 und ob eine Rechnungsnummer versehentlich &#8222;leer, aber vorhanden&#8220; sein kann. Was die beiden Eigenschaften bedeuten, welche vier Kombinationen es gibt und welche Du in der Rechnungsverwaltung wann w\u00e4hlst, liest Du in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Tabellen_basics_Eingabe_erforderlichLeere_\u00adZeichenfolge.html\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Tabellen [basics]: Arbeit sparen mit Beschriftungen<\/h3>\n<p>Feldnamen wie <b>AnredeID <\/b>oder <b>EMail <\/b>sind praktisch beim Entwickeln, aber niemand m\u00f6chte sie als Spalten\u00fcberschrift in einer Tabelle oder als Bezeichnungsfeld in einem Formular lesen. Meist gew\u00f6hnt man sich an, jedes Bezeichnungsfeld von Hand umzubenennen \u2013 wieder und wieder, in jedem Formular neu. Dabei gibt es eine Feldeigenschaft, die genau das ein f\u00fcr alle Mal erledigt: die Beschriftung. Wie sie funktioniert, wo sie Dir Arbeit spart und an welcher Stelle sie zur Falle wird, liest Du in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.access-basics.de\/index.php\/Tabellen_basics_Arbeit_sparen_mit_Beschriftungen.html\">Zum Artikel &#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Berichte [basics]: Unterberichte einsetzen Bisher haben wir Berichte gebaut, die Daten aus verkn\u00fcpften Tabellen \u00fcber eine Gruppierung strukturieren \u2013 der Leser im Gruppenkopf, seine Ausleihen darunter. Das funktioniert tadellos, solange es eine Liste je Datensatz<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":""},"class_list":["post-88032026","page","type-page","status-publish","hentry"],"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>Access [basics] Ausgabe 03\/2026 - Access [basics]<\/title>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access [basics] Ausgabe 03\/2026 - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Berichte [basics]: Unterberichte einsetzen Bisher haben wir Berichte gebaut, die Daten aus verkn\u00fcpften Tabellen \u00fcber eine Gruppierung strukturieren \u2013 der Leser im Gruppenkopf, seine Ausleihen darunter. Das funktioniert tadellos, solange es eine Liste je Datensatz\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/88032026\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\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=\"4\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\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/88032026#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/88032026\",\"name\":\"Access [basics] Ausgabe 03\/2026 - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"datePublished\":\"2019-11-08T11:47:22+00:00\",\"dateModified\":\"2019-11-08T11:47:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/88032026#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/88032026\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/88032026#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\/88032026\",\"url\":\"https:\/\/access-basics.de\/index.php\/88032026\",\"name\":\"Access [basics] Ausgabe 03\/2026\"}}]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/pages\/88032026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/page"}],"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=88032026"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/pages\/88032026\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=88032026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}