{"id":55001053,"date":"2016-10-01T00:00:00","date_gmt":"2020-05-22T15:24:47","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1053"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Rechnungsbericht","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/","title":{"rendered":"Rechnungsbericht"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Die Ausgabe von Rechnungen d&uuml;rfte einer der beliebtesten Anwendungszwecke f&uuml;r die Erstellung von Berichten sein. Gleichzeitig sind Rechnungsberichte aber auch eine der anspruchsvollsten Aufgaben &#8211; zumindest, wenn man s&auml;mtlichen Schnickschnack wie Zwischensumme und &uuml;bertrag, vern&uuml;nftige Aufteilung der Positionen bei mehrseitigen Berichten, keine letzte Seite ohne wesentliche Informationen et cetera ber&uuml;cksichtigen will. Und wenn Sie dann noch mehrere Rechnungen in einem Bericht abbilden wollen, haben Sie das Ziel erreicht.<\/b><\/p>\n<h2>Datenherkunft f&uuml;r den Bericht<\/h2>\n<p>Als Grundlage verwenden wir die Bestelldaten aus der Suedsturm-Datenbank. We-lche Tabellen Sie f&uuml;r die dem Bericht zugrunde liegende Abfrage ben&ouml;tigen, l&auml;sst sich mit einem Blick auf eine herk&ouml;mmliche Rechnung herausfinden. F&uuml;r die Anschrift des Kun-den ben&ouml;tigen Sie die <b>tblKunden<\/b>-Tabelle, den Rest erledigen die in einer m:n-Beziehung ste-henden Tabellen <b>tblBestellungen<\/b>, <b>tblBestelldetails<\/b> und <b>tblArtikel<\/b>. Damit der Kunde wei&szlig;, an wen er sich bei Fragen wenden kann, nehmen Sie noch die Tabelle <b>tblPersonal<\/b> hinzu, die ebenfalls mit der Tabelle <b>tblBestellungen<\/b> verkn&uuml;pft ist. Die als Datensatzquelle verwendete Abfrage sieht schlie&szlig;-lich wie in Bild 1 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_001.png\" alt=\" Datensatzquelle f&uuml;r den Rechnungsbericht (qryRechnungsbericht)\" width=\"700\" height=\"485,0878\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1:  Datensatzquelle f&uuml;r den Rechnungsbericht (qryRechnungsbericht)<\/span><\/b><\/p>\n<p>Den aktuellen Steuergesetzen entsprechend wurde der Tabelle <b>Bestellung<\/b> noch ein Feld namens <b>Rechnungsnummer<\/b> hinzugef&uuml;gt. Das Feld hat den Datentyp <b>Text<\/b>, um auch Zeichen wie Bindestriche oder Schr&auml;gstriche zu erm&ouml;glichen. Wie Sie die Rechnungsnummer ermitteln, bleibt Ihnen &uuml;berlassen. Eine Rechnungs-num-mer muss aber auf jeden Fall eindeutig sein.<\/p>\n<p>Manch einer verwendet eine bei 1 startende Nummerierung in Zusammenhang mit der Jahreszahl (zum Beispiel <b>2016-01<\/b>); andere lassen die Kundennummer in die Rech-nungs-nummer einflie&szlig;en. Wer wichtig wirken m&ouml;chte, verwendet eine Rechnungs-nummer wie <b>950 752 0642<\/b>.<\/p>\n<p>In der Beispieltabelle <b>tblBestellungen <\/b>ist die Rechnungsnummer schlicht eine Kom-bi-nation aus dem Datum der Rechnungstellung und dem Prim&auml;rschl&uuml;ssel der Tabelle (etwa 20161009-11077). So k&ouml;nnen Sie auch einmal nur einfach in den Ordner mit Rechnungen schauen, wenn ein Kunde (oder der Steuerpr&uuml;fer) dazu eine Frage hat &#8211; voraus-gesetzt dort liegen die Rechnungen in chronologischer Reihenfolge vor &#8230;<\/p>\n<h2>Mehrwertsteuers&auml;tze<\/h2>\n<p>Au&szlig;erdem wurde die Tabelle <b>Artikel<\/b> um ein Feld namens <b>Mehrwertsteuersatz<\/b> erweitert (s. Bild 2), das zu Testzwecken nicht durchg&auml;ngig den Wert <b>7%<\/b> enth&auml;lt, wie es f&uuml;r Lebensmittel &uuml;blich ist, sondern dem wir hier und da auch mal den Wert 19% hinzugef&uuml;gt haben. Die Tabelle <b>tblBestelldetails <\/b>enth&auml;lt das gleiche Feld, in das bei einer Bestellung der g&uuml;ltige Mehrwertsteuersatz &uuml;bertragen werden soll &#8211; auf diese Weise kann man die Mehrwertsteuers&auml;tze f&uuml;r die Tabelle <b>tblArtikel <\/b>&auml;ndern, ohne dass sich dies auf bereits erstellte Datens&auml;tze in der Tabelle <b>tblBestellpositionen <\/b>auswirkt. Wir wollen ja gegebenenfalls auch einmal eine Rechnungskopie drucken k&ouml;nnen, ohne dass dort wegen ge&auml;nderter Mehrwertsteuers&auml;tze pl&ouml;tzlich neue Rechnungsbetr&auml;ge herauskommen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_002.png\" alt=\"Das neue Feld Mehrwertsteuersatz in der Tabelle tblArtikel\" width=\"649,4275\" height=\"481,8048\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Das neue Feld Mehrwertsteuersatz in der Tabelle tblArtikel<\/span><\/b><\/p>\n<p>Das Feld <b>Mehrwertsteuersatz <\/b>haben wir mit dem Datentyp <b>W&auml;hrung <\/b>versehen. Auf diese Weise erhalten wir die gew&uuml;nschte Genauigkeit. Au&szlig;erdem haben wir das Format auf <b>Prozentzahl <\/b>eingestellt und die Anzeige der Dezimalstellen auf <b>0 <\/b>&#8211; sollten einmal Mehrwertsteuers&auml;tze wie <b>19,5% <\/b>auftauchen, kann man dies nachtr&auml;glich &auml;ndern.<\/p>\n<p>Auf die gleiche Weise haben wir auch die Felder <b>Mehrwertsteuersatz <\/b>und <b>Rabatt <\/b>in der Tabelle <b>tblBestelldetails <\/b>angepasst.<\/p>\n<h2>Berechnete Felder<\/h2>\n<p>Die Abfrage selbst wurde um ein berechnetes Feld namens <b>Bruttopreis<\/b> erg&auml;nzt, das den Bruttopreis einer jeden Position enth&auml;lt (siehe Auflistung). Au&szlig;erdem gibt es noch zwei weitere berechnete Felder namens <b>Netto <\/b>und <b>MwStBetrag<\/b>. Sie verwenden in diesem Bericht folgende Felder:<\/p>\n<ul>\n<li>Tabelle <b>tblArtikel<\/b>: <b>ArtikelID<\/b>, <b>Artikelname<\/b>, <b>Liefereinheit<\/b><\/li>\n<li>Tabelle <b>tblBestelldetails<\/b>: <b>Einzelpreis<\/b>, <b>Menge<\/b>, <b>Rabatt<\/b>, <b>Mehrwertsteuer<\/b><\/li>\n<li>Tabelle <b>tblBestellungen<\/b>: <b>BestellungID<\/b>, <b>KundeID<\/b>, <b>Bestelldatum<\/b>, <b>Versanddatum<\/b>, <b>VersandUeber<\/b>, <b>Fracht-kosten<\/b>, <b>Empfaenger<\/b>, <b>Strasse<\/b>, <b>Ort<\/b>, <b>PLZ<\/b>, <b>Bestimmungsland<\/b>, <b>Rechnungsnummer<\/b><\/li>\n<li>Tabelle <b>tblKunden<\/b>: <b>Firma<\/b>, <b>Kontaktperson<\/b>, <b>Strasse<\/b>, <b>Ort<\/b>, <b>PLZ<\/b>, <b>Land<\/b><\/li>\n<li>Tabelle <b>tblPersonal<\/b>: <b>Nachname<\/b>, <b>Vorname<\/b>, <b>Anrede<\/b>, <b>DurchwahlBuero<\/b><\/li>\n<li>Berechnetes Feld <b>Bruttopreis<\/b>: <b>[tblBestelldetails].[Einzelpreis]*[tblBestelldetails].[Menge]* ([tblBestelldetails].[Rabatt]+1)*([tblArtikel].[Mehrwertsteuer]+1) <\/b><\/li>\n<li>Berechnetes Feld <b>Netto<\/b>: <b>[tblBestelldetails.Einzelpreis]*[Menge]*(1+[Rabatt])<\/b><\/li>\n<li>Berechnetes Feld <b>MwStBetrag<\/b>: <b>[tblBestelldetails.Einzelpreis]*[Menge]*(1+[Rabatt])*[Mehr-wertsteuer]<\/b><\/li>\n<\/ul>\n<p>Die letzten beiden Felder werden nicht in der Auflistung der Positionen angezeigt, sondern dienen nur der Ermittlung der Summe der Nettopreise und der Mehrwertsteuer am Ende der Rechnung.<\/p>\n<p>Wenn Sie mit fr&uuml;heren Versionen der Suedsturm-Datenbank experimentiert haben, ist Ihnen vielleicht auch aufgefallen, dass wir den Namen des Feldes <b>Anzahl <\/b>in der Tabelle <b>tblBestelldetails <\/b>durch <b>Menge <\/b>ersetzt haben. Der Grund ist einfach: In der deutschen Version von Access ist <b>Anzahl <\/b>ein reserviertes Wort, was hier und da zu Problemen f&uuml;hren k&ouml;nnte. Daher haben wir es durch die Bezeichnung <b>Menge <\/b>ersetzt.<\/p>\n<h2>Konzept f&uuml;r die Erstellung des Berichts<\/h2>\n<p>Bevor Sie sich an die Erstellung eines Berichts machen, sollten Sie die Daten in Gedanken (oder auch auf dem Papier) kurz auf die einzelnen Bereiche eines Berichts aufteilen und sich &uuml;berlegen, welche Daten etwa nur auf der ersten Seite angezeigt werden, was passiert, wenn so viele Datens&auml;tze vorhanden sind, dass der Bericht &uuml;ber mehrere Seiten geht, und so weiter.<\/p>\n<p>Im vorliegenden Fall haben Sie es mit einem ziemlich gro&szlig;en Berichtskopf zu tun: Dieser enth&auml;lt den kompletten Briefkopf, die Anschrift des Kunden, Lieferdaten und so weiter. Moment: Ist das wirklich so Wenn der Berichtskopf bereits kundenspezifische und damit rechnungsspezifische Daten enth&auml;lt, dann k&ouml;nnen Sie nur eine Rechnung je Bericht ausgeben. Warum Weil der Berichtskopf nur einmal je Bericht angezeigt wird. Wenn Sie aber mal einen ganzen Schwung Rechnungen ausdrucken m&ouml;chten, haben Sie ein Problem: Sie m&uuml;ssen dann schon den gleichen Bericht mehrere Male aufrufen. Nat&uuml;rlich geht das auch, aber in diesem Fall sollen Sie einen Bericht erstellen, der mehrere Rechnungen auf einen Rutsch anfertigen kann.<\/p>\n<p>Also ben&ouml;tigen Sie eine Gruppierung &uuml;ber die einzelnen Bestellungen &#8211; als Gruppierungsfeld bietet sich das Feld <b>BestellungID<\/b> an. Im Gruppenkopf bringen Sie nun alles unter, was Sie sonst in den Berichtskopf packen wollten &#8211; Briefkopf, Anschrift, Bestelldaten wie Bestellnummer und so weiter.<\/p>\n<p>Die einzelnen Positionen geh&ouml;ren &#8211; ganz klar &#8211; in den Detailbereich. Dar&uuml;ber ben&ouml;tigen Sie Feld&uuml;berschriften: Diese k&ouml;nnen Sie auf der ersten Seite direkt im Gruppenkopf unterbringen, auf den folgenden Seiten im Seitenkopf. Dieser darf dann wiederum nicht auf der ersten Seite angezeigt werden &#8211; dazu sp&auml;ter mehr. Nach der letzten Rechnungsposition folgt noch die Rechnungssumme. Daf&uuml;r bietet sich der Berichtsfu&szlig; an. Auf der Seite mit dem Berichtsfu&szlig; soll wiederum kein Seitenfu&szlig;bereich angezeigt werden.<\/p>\n<p>Wenn Sie dem Kunden ein wenig mehr Komfort bieten m&ouml;chten, sorgen Sie auch noch f&uuml;r eine Zwischensumme und einen &uuml;bertrag. Die Zwischensumme geh&ouml;rt mit in den Seitenfu&szlig;, der &uuml;bertrag in den Seitenkopf &#8211; dieser erscheint aber nur auf den Seiten, die keinen Gruppierungskopf anzeigen. Sie sehen &#8211; eine Rechnung ist nicht gerade der trivialste Bericht, der sich mit Access erstellen l&auml;sst, und er enth&auml;lt noch nicht einmal Gruppierungen.<\/p>\n<h2>Briefkopf im Berichtskopf oder Gruppenkopf<\/h2>\n<p>Normalerweise w&uuml;rden wir den Briefkopf im Bereich <b>Berichtskopf<\/b> eines Berichts anlegen. Eigentlich logisch &#8211; der erscheint schlie&szlig;lich maximal einmal, und zwar auf der ersten Seite.<\/p>\n<p>Allerdings wollen wir dabei nicht vergessen, dass wir nicht nur eine Rechnung, sondern gegebenenfalls auch mehrere Rechnungen in einem Bericht ausgeben wollen. Das hei&szlig;t also, dass wir die Daten des Briefkopfs in den Gruppenkopf f&uuml;r die einzelnen Rechnungen packen m&uuml;ssen. So ben&ouml;tigen wir also eine Gruppierung f&uuml;r den Bericht, der die Daten unserer Datenherkunft nach den Datens&auml;tzen der Tabelle <b>tblBestellungen<\/b> gruppiert. Diesen richten Sie wie in Bild 3 ein. Hier w&auml;hlen Sie au&szlig;erdem die Eigenschaftswerte <b>mit Kopfzeilenbereich<\/b>, <b>mit Fu&szlig;zeilenbereich <\/b>und <b>Kopfzeile und ersten Datensatz auf einer Seite zusammenhalten <\/b>aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_003.png\" alt=\"Einrichtung der Gruppierung f&uuml;r den Rechnungsbericht\" width=\"649,4275\" height=\"556,652\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Einrichtung der Gruppierung f&uuml;r den Rechnungsbericht<\/span><\/b><\/p>\n<h2>Erstellen des Gruppenkopfs<\/h2>\n<p>Die Erstellung des Gruppenkopfs einer Rechnung ist im Wesentlichen Design-Arbeit und weniger Denksport. Hier bringen Sie den Briefkopf unter, den Block mit der Emp-f&auml;n-geradresse und den Block mit den allgemeinen Rechnungsdaten (s. Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_004.png\" alt=\"Einrichtung des Gruppenkopfes f&uuml;r die Rechnung\" width=\"649,4275\" height=\"552,228\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Einrichtung des Gruppenkopfes f&uuml;r die Rechnung<\/span><\/b><\/p>\n<p>Hier gibt es folgende Besonderheiten: Das Feld <b>txtPLZUndOrt<\/b> fasst die Felder <b>PLZ und Ort<\/b> der Tabelle <b>Kunden<\/b> zusammen. Wichtig ist hier wie bei anderen Steuerelementen, dass Sie Tabellennamen und Feldnamen von in mehreren Tabellen vorkommenden Feldern durch Punkt getrennt schreiben und in eckige Klammern einfassen. Dies geschieht noch einmal im Gruppenkopf, und zwar im Textfeld <b>txtAnsprechpartner<\/b>. Dessen Inhalt lautet:<\/p>\n<pre>=[Personal.Anrede] & \" \" & [Personal.Vorname] & \" \" & [Personal.Nachname]<\/pre>\n<p>Die Feld&uuml;berschriften werden Sie normalerweise erst im folgenden Schritt beim F&uuml;llen des Detailbereichs anlegen, in der Abbildung sehen Sie aber bereits ihre Anordnung.<\/p>\n<h2>Anlegen des Detailbereichs<\/h2>\n<p>Der Detailbereich ist reine Flei&szlig;arbeit &#8211; abgesehen von einem Feature, das aber erst sp&auml;ter hinzukommt, und der Angabe der Rechnungspositionen. Der Detailbereich enth&auml;lt die Felder <b>Artikelname<\/b>, <b>Liefereinheit<\/b>, <b>Bruttopreis<\/b>, <b>Einzelpreis, Menge, Rabatt<\/b>, <b>Mehrwertsteuersatz <\/b>und <b>Bruttopreis<\/b>, wobei Letzteres das berechnete Feld ist, das Sie der Abfrage weiter oben hinzugef&uuml;gt haben. Es fehlt noch das ganz linke Feld in der Entwurfsansicht (s. Bild 5). Es hei&szlig;t <b>txtPosition<\/b> und besitzt als Steuerelementinhalt den Wert <b>=1<\/b>. Damit dieses Feld die Position des Artikels f&uuml;r die aktuelle Rechnung, also innerhalb der aktuellen Gruppierung, anzeigt, stellen Sie die Eigenschaft <b>Laufende Summe<\/b> dieses Feldes auf <b>&uuml;ber Gruppe<\/b> ein.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_005.png\" alt=\"Einrichtung des Detailbereichs\" width=\"649,4275\" height=\"335,4657\" \/><\/p>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Einrichtung des Detailbereichs<\/span><\/b><\/p>\n<p>Au&szlig;erdem f&uuml;gen Sie das Feld <b>Bruttopreis <\/b>erneut hinzu (siehe das markierte Feld in der Abbildung). F&uuml;r dieses stellen Sie die Eigenschaft <b>Sichtbar <\/b>auf <b>Nein <\/b>ein sowie <b>Laufende Summe <\/b>auf <b>&uuml;ber Gruppe<\/b>. Geben Sie diesem Feld au&szlig;erdem die Bezeichnung <b>txtLaufendeSumme<\/b>. Wir ben&ouml;tigen es sp&auml;ter f&uuml;r die Zwischensumme und den &uuml;bertrag.<\/p>\n<h2>Berechnungen in Berichten oder Berechnungen in Formularen<\/h2>\n<p>M&ouml;glicherweise fragen Sie sich, ob man die Berechnung des Bruttopreises und der anderen berechneten Felder in der Abfrage nicht auch innerhalb des Berichts h&auml;tte durchf&uuml;hren k&ouml;nnen. Die Frage ist berechtigt, da das sogar funktionieren w&uuml;rde. Das Problem ist nur, dass Sie keine datensatz&uuml;bergreifenden Berechnungen &uuml;ber den Bezug auf das Feld mit dem Berechnungsergebnis durchf&uuml;hren k&ouml;nnten. Ein in der Abfrage berechnetes Feld behandelt Access im Bericht aber wie ein normales Tabellenfeld; hier sind Berechnungen wie etwa das Bilden der Summe &uuml;ber alle Datens&auml;tze einer Gruppierung m&ouml;glich.<\/p>\n<p>Streng genommen w&uuml;rde man im Bericht auch ohne das in der Abfrage berechnete Feld auskommen, aber dann m&uuml;sste man im Feld zur Berechnung der Summe &uuml;ber mehrere Datens&auml;tze Bezug auf die Berechnungsformel nehmen und nicht auf das Feld mit dem Berechnungsergebnis.<\/p>\n<h2>Summenbildung im Fu&szlig;bereich der Gruppierung<\/h2>\n<p>Im Fu&szlig;bereich der Gruppierung hei&szlig;t es: Abrechnen! Hier wird die Summe &uuml;ber die Felder <b>Netto<\/b>, <b>MwStBetrag <\/b>und <b>Bruttopreis<\/b> des Detailbereichs gebildet und schlie&szlig;lich noch der Frachtkostenanteil hinzuaddiert (s. Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_006.png\" alt=\"Steuerelemente f&uuml;r den Fu&szlig;bereich\" width=\"649,4275\" height=\"345,6068\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Steuerelemente f&uuml;r den Fu&szlig;bereich<\/span><\/b><\/p>\n<p>Dazu f&uuml;gen Sie f&uuml;r die Eigenschaft Steuerelement einfach den Feldnamen ein und f&uuml;gen die <b>Summe()<\/b>-Funktion hinzu, sodass beispielsweise <b>=Summe([Netto]) <\/b>daraus wird.<\/p>\n<p>Achtung: Interessanterweise m&uuml;ssen wir f&uuml;r die Eigenschaft <b>Laufende Summe <\/b>f&uuml;r die Summentextfelder nicht etwa den Wert <b>&uuml;ber Gruppe <\/b>ausw&auml;hlen, sondern den Wert <b>Nein <\/b>beibehalten (s. Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_007.png\" alt=\"Einstellung der Eigenschaft LaufendeSumme f&uuml;r die Summenfelder\" width=\"349,6916\" height=\"314,6193\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Einstellung der Eigenschaft LaufendeSumme f&uuml;r die Summenfelder<\/span><\/b><\/p>\n<p>Unterhalb der Rechnungssumme ist ein guter Ort, um die Bankverbindung unterzubringen.<\/p>\n<p>Diese k&ouml;nnte man zwar auch auf der ersten Seite zu den allgemeinen Rechnungsdaten hinzuf&uuml;gen, aber der Rechnungsempf&auml;nger wird sich freuen, wenn er zum Begleichen der Rechnung per Online-Banking bei mehrseitigen Rechnungen nicht noch hin- und herbl&auml;ttern muss.<\/p>\n<p>Der Fu&szlig;bereich greift auf zwei Felder zur&uuml;ck, die sich zwar in der Abfrage, aber nicht im Detailbereich des Berichts befinden: <b>Netto<\/b> und <b>MwStBetrag<\/b>. Diese werden aus Gr&uuml;nden der &uuml;bersicht nicht in jedem Datensatz angezeigt, sondern nur aufsummiert am Ende der Rechnung.<\/p>\n<h2>Feinheiten: Zwischensumme und &uuml;bertrag<\/h2>\n<p>Ist abzusehen, dass sich einige Rechnungen &uuml;ber mehrere Seiten erstrecken, macht die Angabe von Zwischensumme und &uuml;bertrag Sinn. Die Zwischensumme platzieren Sie im Bereich <b>Seitenfu&szlig;<\/b> des Berichts (s. Bild 8). Zur Ermittlung der laufenden Summe m&uuml;ssen Sie zun&auml;chst ein zus&auml;tzliches unsichtbares Feld im Detailbereich anlegen. Dieses erh&auml;lt den Namen <b>txtLaufendeSumme<\/b> und hat als Steuer-elementinhalt den Wert <b>=BruttoPreis<\/b>. Damit die laufende Summe nur im Rahmen der aktuellen Rechnung ermittelt wird, stellen Sie die Eigenschaft <b>Laufende Summe<\/b> auf <b>&uuml;ber Gruppe<\/b> ein.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_008.png\" alt=\"Entwurfsansicht des Seitenfu&szlig;es mit der laufenden Summe\" width=\"649,4275\" height=\"254,1994\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Entwurfsansicht des Seitenfu&szlig;es mit der laufenden Summe<\/span><\/b><\/p>\n<p>Dieses Feld enth&auml;lt jeweils den Inhalt des gleichen Feldes aus dem vorherigen Datensatz zuz&uuml;glich des Inhalts des Feldes <b>Bruttopreis <\/b>des aktuellen Datensatzes. Das Feld <b>txtZwischensumme<\/b> im Seitenfu&szlig; des Berichts enth&auml;lt den Inhalt des Feldes <b>txtLaufendeSumme<\/b>, welcher am Seitenende dem Wert des untersten angezeigten Datensatzes entspricht.<\/p>\n<h2>&uuml;berschriften f&uuml;r Folgeseiten und Rechnungs&uuml;bertrag<\/h2>\n<p>Fehlen noch die Feld&uuml;berschriften f&uuml;r die Folgeseiten in Rechnungen, die &uuml;ber mehr als eine Seite gehen.<\/p>\n<p>Diese platzieren Sie genau wie das Feld zur Anzeige des Rechnungs&uuml;bertrags im Seitenkopf des Berichts (s. Bild 9). Das Feld zur Anzeige des &uuml;bertrags hei&szlig;t <b>txtUebertrag<\/b> und ist ungebunden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_009.png\" alt=\"Der Seitenkopf in der Entwurfsansicht\" width=\"649,4275\" height=\"290,7624\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Der Seitenkopf in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Damit es immer den Wert anzeigt, den das Feld <b>txtZwischensumme<\/b> auf der vorherigen Seite hatte, setzen Sie eine Ereigniseigenschaft ein, die direkt nach der Ermittlung der Zwischensumme ausgel&ouml;st wird und das Feld <b>txtUebertrag<\/b> mit dem aktuellen Wert des Feldes <b>txtZwischensumme<\/b> f&uuml;llt. Die entsprechende Routine sieht folgenderma&szlig;en aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Seitenfu&szlig;bereich_Print(Cancel<span style=\"color:blue;\"> As Integer<\/span>, _\r\n     PrintCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     Me!txtUebertrag = Me!txtZwischensumme\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Rechnungsentwurf im Zusammenhang und Restarbeiten<\/h2>\n<p>Wenn Sie den Rechnungsbericht, dessen Entwurf Sie in Bild 10 im &uuml;berblick sehen, nun &ouml;ffnen, werden Sie noch kleinere Sch&ouml;nheitsfehler entdecken.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_011.png\" alt=\"Entwurf des Rechnungsberichts im &uuml;berblick\" width=\"599,4715\" height=\"621,7035\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Entwurf des Rechnungsberichts im &uuml;berblick<\/span><\/b><\/p>\n<p>Es beginnt nicht jede Rechnung auf einer neuen Seite, der Seitenkopfbereich erscheint auch auf der ersten Seite einer Bestellung mit dem Gruppenkopf und der Seitenfu&szlig; erscheint auch auf der letzten Seite, wo er eigentlich nicht sichtbar sein sollte. Au&szlig;erdem werden manche Bereiche mit einem grauen Hintergrund ausgestattet (s. Bild 11). Diese Ungereimtheiten r&auml;umen Sie jetzt nacheinander aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_010.png\" alt=\"Der Rechnungsbericht sieht noch nicht perfekt aus.\" width=\"599,4715\" height=\"592,6125\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Der Rechnungsbericht sieht noch nicht perfekt aus.<\/span><\/b><\/p>\n<h2>Aus Grau mach Wei&szlig;<\/h2>\n<p>Die grauen Bereiche erkl&auml;ren sich durch die Eigenschaft <b>Alternative Hintergrundfarbe <\/b>von Bereichen, die sich wiederholen k&ouml;nnen &#8211; also Gruppenkopf, Gruppenfu&szlig; und Detailbereich. Der &uuml;bersicht halber sollen diese standardm&auml;&szlig;ig mit wechselnder Hintergrundfarbe hinterlegt werden. In unserem Fall ist das eher hinderlich, also stellen wir diese Eigenschaft f&uuml;r alle betroffenen Bereiche auf den gleichen Farbwert ein, den wir auch in der Eigenschaft <b>Hintergrundfarbe <\/b>vorfinden &#8211; unter neueren Access-Versionen etwa <b>Hintergrund 1<\/b> statt <b>Hintergrund 1, Dunkler 5% <\/b>(s. Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_012.png\" alt=\"Deaktivieren der alternierenden Hintergrundfarbe\" width=\"424,6255\" height=\"317,4284\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Deaktivieren der alternierenden Hintergrundfarbe<\/span><\/b><\/p>\n<h2>Bereiche auf neuer Seite anzeigen<\/h2>\n<p>In der aktuellen Fassung beginnt nicht jede Rechnung auf einer neuen Seite, die Rechnungen werden einfach nacheinander weggedruckt. Um die Anzeige jeder Rech-nung auf einer neuen Seite zu erreichen, ist nur eine kleine &auml;nderung vonn&ouml;ten: Stellen Sie die Eigenschaft <b>Neue Seite<\/b> des Kopfbereichs der Gruppierung <b>BestellungID<\/b> auf den Wert <b>Vor Bereich<\/b> ein. Dadurch wird vor jedem Gruppenkopf ein Seitenumbruch eingef&uuml;gt.<\/p>\n<h2>Seitenkopf und Seitenfu&szlig; nur auf bestimmten Seiten anzeigen<\/h2>\n<p>Nun wenden Sie sich dem Seitenkopf und dem Seitenfu&szlig; zu. Der Seitenkopf erscheint dummerweise auch auf der ersten Seite &uuml;ber dem Briefkopf und der Seitenfu&szlig; soll nicht auf Seiten angezeigt werden, die den Gruppenfu&szlig; enthalten. W&uuml;rden Sie hier die weiter oben angesprochene Variante des Rechnungsberichts verwenden, bei der jede Rechnung in einem einzelnen Bericht angezeigt wird und sich der Briefkopf mit den allgemeinen Rechnungsdaten im Berichtskopf statt im hier verwendeten Gruppenkopf befindet, w&auml;re das Problem leicht zu l&ouml;sen: Sie w&uuml;rden dann einfach die Eigenschaft <b>Seitenkopf<\/b> des Berichts auf den Wert <b>Au&szlig;er Berichtskopf<\/b> einstellen (s. Bild 13).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_013.png\" alt=\"Seitenkopf nicht mit dem Berichtskopf auf einer Seite anzeigen\" width=\"424,6255\" height=\"266,4317\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Seitenkopf nicht mit dem Berichtskopf auf einer Seite anzeigen<\/span><\/b><\/p>\n<p>Nachdem Sie nun wissen, wie dies normalerweise funktionieren w&uuml;rde, kommen Sie nun zur anspruchsvolleren Variante: Und da ist schon ein wenig Gehirnschmalz notwendig.<\/p>\n<p>Die wichtigste Information, die Sie zum Ein- beziehungsweise Ausblenden von Be-richts-be-reichen haben m&uuml;ssen, ist folgende: Es funktioniert nicht zuverl&auml;ssig, wenn Sie den Be-reich mit der <b>Visible<\/b>-Eigenschaft sichtbar oder unsichtbar machen.<\/p>\n<p>Auf der sicheren Sei-te sind Sie, wenn Sie die <b>Cancel<\/b>-Eigenschaft der <b>Beim Formatieren<\/b>-Eigenschaft des je-wei-ligen Bereichs auf <b>True <\/b>setzen, um die Anzeige des Bereichs zu unterbinden.<\/p>\n<p>Ob einer der beiden Bereiche <b>Seitenkopf <\/b>oder <b>Seitenfu&szlig;<\/b> angezeigt werden soll, entscheidet sich freilich nicht in der jeweiligen <b>Beim Formatieren<\/b>-Eigenschaft, sondern in anderen Ereignisprozeduren.<\/p>\n<p>Nun der Reihe nach: Listing 1 enth&auml;lt das komplette Klassenmodul des Berichts. Die Ereignisprozeduren sind nach der Reihenfolge ihres Auftretens geordnet, wobei das <b>Beim &ouml;ffnen<\/b>-Ereignis des Berichts nur einmal ausgel&ouml;st wird. Um festzulegen, ob die Anzeige von Seitenfuss oder Seitenkopf unterbunden werden soll, verwenden Sie zwei <b>Boolean<\/b>-Variablen namens <b>bolCancelSeitenfuss <\/b>und <b>bolCancelSeitenkopf<\/b>, die wir im Kopfbereich des Moduls definieren.<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>bolCancelSeitenfuss<span style=\"color:blue;\"> As Boolean<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>bolCancelSeitenkopf<span style=\"color:blue;\"> As Boolean<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Report_Open(Cancel<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''auf erster Seite wird auf jeden Fall der Gruppenkopf sichtbar, \r\n     ''''also Seitenkopf ausblenden\r\n     bolCancelSeitenkopf = <span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Gruppenkopf0_Print(Cancel<span style=\"color:blue;\"> As Integer<\/span>, PrintCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''Seitenfu&szlig; soll erstmal nicht ausgeblendet werden...\r\n     bolCancelSeitenfuss = <span style=\"color:blue;\">False<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Gruppenfu&szlig;1_Print(Cancel<span style=\"color:blue;\"> As Integer<\/span>, PrintCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''... au&szlig;er, der Gruppenfu&szlig; wird angezeigt. \r\n     ''''Dann gibt es keinen Seitenfu&szlig;.\r\n     bolCancelSeitenfuss = <span style=\"color:blue;\">True<\/span>\r\n     ''''Und wenn der Gruppenfu&szlig; angezeigt wird, erscheint auf der n&auml;chsten Seite \r\n     ''''eine neue Rechnung, also soll auch der Seitenkopf nicht angezeigt \r\n     ''''werden.\r\n     bolCancelSeitenkopf = <span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Seitenfu&szlig;bereich_Format(Cancel<span style=\"color:blue;\"> As Integer<\/span>, _\r\n         FormatCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''Abbrechen, wenn bolCancelSeitenfuss <span style=\"color:blue;\">True<\/span> ist\r\n     Cancel = bolCancelSeitenfuss\r\n     Me!txtUebertrag = Me!txtZwischensumme\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Seitenfu&szlig;bereich_Print(Cancel<span style=\"color:blue;\"> As Integer<\/span>, _\r\n         PrintCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''Wenn Seitenfu&szlig;, dann auf jeden Fall Seitenkopf auf n&auml;chster Seite\r\n     ''''anzeigen\r\n     bolCancelSeitenkopf = <span style=\"color:blue;\">False<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Seitenkopfbereich_Format(Cancel<span style=\"color:blue;\"> As Integer<\/span>, _\r\n         FormatCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     ''''Abbrechen, wenn bolCancelSeitenkopf <span style=\"color:blue;\">True<\/span> ist\r\n     Cancel = bolCancelSeitenkopf\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Inhalt des Klassenmoduls des Berichts rptRechnungen<\/span><\/b><\/p>\n<p>Beim &ouml;ffnen des Berichts wird das Ereignis <b>Beim &ouml;ffnen<\/b> ausgel&ouml;st. Die erste Seite des Berichts enth&auml;lt logischerweise die erste Seite einer Rechnung. Daher wird hier auf jeden Fall der Gruppenkopf der Rechnung angezeigt; der Seitenkopf soll dann nicht erscheinen &#8211; die Variable <b>bolCancelSeitenkopf <\/b>wird auf <b>True <\/b>eingestellt:<\/p>\n<pre>bolCancelSeitenkopf = <span style=\"color:blue;\">True<\/span><\/pre>\n<p>Vor dem Anzeigen des Gruppenkopfs wird dessen <b>Beim Drucken<\/b>-Ereignis ausgel&ouml;st. Hier wird die Variable <b>bolCancelSeitenfuss <\/b>prophylaktisch auf <b>False <\/b>eingestellt:<\/p>\n<pre>bolCancelSeitenfuss = <span style=\"color:blue;\">False<\/span> <\/pre>\n<p>Das kann sich allerdings schnell &auml;ndern, wenn die Gruppierung so wenige Datens&auml;tze enth&auml;lt, dass der Gruppenkopf noch auf der gleichen Seite angezeigt wird. Das dann ausgel&ouml;ste Ereignis <b>Beim Drucken<\/b> des Gruppenfu&szlig;es stellt die Variable <b>bolCancelSeitenfuss <\/b>dann auf <b>True <\/b>ein:<\/p>\n<pre>bolCancelSeitenfuss = <span style=\"color:blue;\">True<\/span><\/pre>\n<p>Damit steht auch fest, dass auf der n&auml;chsten Seite eine neue Rechnung beginnt &#8211; der Seitenkopf soll also wieder dem Gruppenkopf weichen: Dazu erh&auml;lt die Variable <b>bolCancelSeitenkopf <\/b>ebenfalls den Wert <b>True<\/b>:<\/p>\n<pre>bolCancelSeitenkopf = <span style=\"color:blue;\">True<\/span> <\/pre>\n<p>Geht es dann an das Formatieren des Seitenfu&szlig;es, pr&uuml;ft das Ereignis <b>Beim Formatieren<\/b> den Wert <b>bolCancelSeitenfuss<\/b> und weist diesen dem <b>Cancel<\/b>-Parameter zu. Ist dieser <b>True<\/b>, wird der Bereich nicht angezeigt.<\/p>\n<pre>Cancel = bolCancelSeitenfuss<\/pre>\n<p>In dieser Prozedur befindet sich ja auch die Anweisung, die den Wert des Feldes <b>txtUebertrag <\/b>auf den Wert des Feldes <b>txtZwischensumme <\/b>einstellt und die wir bereits weiter oben besprochen haben:<\/p>\n<pre>Me!txtUebertrag = Me!txtZwischensumme<\/pre>\n<p>Soll der Bereich doch angezeigt werden, wird nach dem <b>Beim Formatieren<\/b>-Ereignis auch noch das <b>Beim Drucken<\/b>-Ereignis ausgel&ouml;st. In diesem stellen Sie dann direkt die Variable <b>bol-CancelSeitenkopf <\/b>auf den Wert <b>False <\/b>ein, denn wenn noch nicht die letzte Seite der Rech-nung erreicht ist, soll auf der Folgeseite auf jeden Fall der Seitenkopf angezeigt werden:<\/p>\n<pre>bolCancelSeitenkopf = <span style=\"color:blue;\">False<\/span><\/pre>\n<p>Schlie&szlig;lich kommen wir noch zum Ereignis <b>Beim Formatieren <\/b>des Seitenkopfes. Dieser soll ja nur eingeblendet werden, wenn es sich um eine Folgeseite handelt &#8211; also wenn <b>bolCancelSeitenkopf <\/b>gleich <b>False <\/b>ist. Anderenfalls wirkt sich die Einstellung von <b>Cancel<\/b> <b>auf <\/b>bolCancelSeitenkopf so aus, dass die Anzeige des Seitenkopfes unterbunden wird:<\/p>\n<pre>Cancel = bolCancelSeitenkopf<\/pre>\n<p>Es ist etwas Aufwand, aber auf diese Weise zeigt der Bericht jede Rechnung auf einer einzelnen Seite an (s. Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_014.png\" alt=\"Jede Rechnung auf einer eigenen Seite anzeigen\" width=\"499,5594\" height=\"412,4023\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Jede Rechnung auf einer eigenen Seite anzeigen<\/span><\/b><\/p>\n<h2>Mehrseitige Rechnungen<\/h2>\n<p>Nun fehlt allerdings noch die Feuerprobe, denn das Beispiel aus dem vorherigen Screenshot zeigt ja nur eine einfache Rechnung, die auf eine Seite passt. Was geschieht, wenn wir eine Bestellung zusammenstellen, deren Positionen auf der Rechnung gerade eben auf die erste Seite passen &#8211; an welcher Stelle wird dann der Bericht umgebrochen<\/p>\n<p>Dazu f&uuml;gen wir zu einer Bestellung in der Tabelle <b>tblBestellpositionen <\/b>einige Eintr&auml;ge hinzu und schauen zwischendurch immer mal wieder, was geschieht. Leider kann man den ge&ouml;ffneten Bericht nicht aktualisieren, aber Sie bekommen das Wechseln in eine andere Ansicht und zur&uuml;ck schnell mit der Tastenkombination <b>Strg + Komma<\/b>, <b>Strg + Punkt <\/b>hin.<\/p>\n<p>Wenn wir also nun gen&uuml;gend Rechnungspositionen angelegt haben, um so einen Seitenumbruch zu erhalten, zeigt sich die Ansicht aus Bild 15. Das ist nicht das erhoffte Ergebnis, denn die Berichtssummen sollen nicht allein auf der letzten Seite der Rechnung stehen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_015.png\" alt=\"Der Seitenumbruch erfolgt nicht an der erhofften Stelle, sondern genau nach der letzten Bestellposition.\" width=\"700\" height=\"542,2974\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Der Seitenumbruch erfolgt nicht an der erhofften Stelle, sondern genau nach der letzten Bestellposition.<\/span><\/b><\/p>\n<p>Zumindest ein Datensatz der Tabelle <b>tblBestellpositionen <\/b>sollte noch auf diese Seite rutschen, allein damit die Spalten&uuml;berschriften nicht so allein dastehen. Zum Gl&uuml;ck haben wir in diesem Bericht eine feste H&ouml;he f&uuml;r jeden Detailbereich, sodass wir z&auml;hlen k&ouml;nnen, wieviele Datens&auml;tze auf die erste Seite passen. Sobald die entsprechende Anzahl erreicht ist, wollen wir dann zur neuen Seite wechseln.<\/p>\n<p>Aber wie soll das funktionieren Ganz einfach: Wir f&uuml;gen unten im Detailbereich ein Steuerelement des Typs <b>Seitenumbruch <\/b>ein und nennen es <b>ctlSeitenumbruch<\/b>.<\/p>\n<p>Dann legen wir f&uuml;r das Ereignis <b>Beim Formatieren<\/b> des Detailbereichs die folgende Prozedur an:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Detailbereich_Format(Cancel<span style=\"color:blue;\"> As Integer<\/span>, _\r\n         FormatCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     Me!ctlSeitenumbruch.Visible = <span style=\"color:blue;\">False<\/span>\r\n     Select Case Me!txtPosition\r\n         <span style=\"color:blue;\">Case <\/span>23, 66, 109\r\n             Me!ctlSeitenumbruch.Visible = <span style=\"color:blue;\">True<\/span>\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wir haben direkt auch noch experimentell ermittelt, dass auch beim 66. und beim 109. Datensatz ein Seitenumbruch eingef&uuml;gt werden soll, wenn die Rechnung so viele Datens&auml;tze enthalten sollte.<\/p>\n<p>Dies funktioniert nun &#8211; der letzte Datensatz rutscht mit auf die n&auml;chste Seite. Allerdings haben wir nun immer einen unsch&ouml;nen Leerraum unten auf der ersten Seite zwischen dem letzten Datensatz der Seite und dem Seitenfu&szlig; (s. Bild 16). Leider schlie&szlig;t sich der Seitenfu&szlig; nicht immer direkt an den letzten Datensatz an, wie es beim Berichtsfu&szlig; der Fall ist. Aber auch daf&uuml;r wird sich eine L&ouml;sung finden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_016.png\" alt=\"Nun gelangt der letzte Artikel auf die Seite mit der Rechnungssumme.\" width=\"700\" height=\"362,1549\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Nun gelangt der letzte Artikel auf die Seite mit der Rechnungssumme.<\/span><\/b><\/p>\n<h2>Seitenfu&szlig;bereich direkt unter letzter Rechnungsposition<\/h2>\n<p>Welche M&ouml;glichkeit haben wir also, um den Seitenfu&szlig;bereich etwas n&auml;her an den letzten Datensatz auf der Seite heranzubekommen<\/p>\n<p>Mit ein wenig Experimentierfreude gelingt auch das. Es stellt sich heraus, dass man den Seitenfu&szlig;-Inhalt durchaus nach oben verschieben kann, wenn man die H&ouml;he des Seitenfu&szlig;es vergr&ouml;&szlig;ert. Dies erledigen wir ebenfalls in der Ereignisprozedur <b>Detailbereich_Format<\/b>, und zwar, indem wir den Wert der <b>Height<\/b>-Eigenschaft f&uuml;r diesen Bereich auf <b>3000 <\/b>einstellen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Detailbereich_Format(Cancel<span style=\"color:blue;\"> As <\/span>_\r\n         Integer, FormatCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     Me!ctlSeitenumbruch.Visible = <span style=\"color:blue;\">False<\/span>\r\n     Select Case Me!txtPosition\r\n         <span style=\"color:blue;\">Case <\/span>23, 66, 109\r\n             Me!ctlSeitenumbruch.Visible = <span style=\"color:blue;\">True<\/span>\r\n             Me.Seitenfu&szlig;bereich.Height = 3000\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Das Ergebnis aus Bild 17 sieht &uuml;berzeugend aus. Allerdings l&auml;sst sich diese L&uuml;cke nicht wieder verkleinern. Wenn Sie nun eine Rechnung ausgeben, die mehr als zwei Seiten f&uuml;llt, erhalten Sie unten den gleichen Abstand wie zuvor &#8211; allerdings wird der Seitenfu&szlig; gleichzeitig wieder ganz unten gedruckt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_1053_017.png\" alt=\"Das Verschieben des Seitenfu&szlig;es gelingt.\" width=\"499,5594\" height=\"728,001\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Das Verschieben des Seitenfu&szlig;es gelingt.<\/span><\/b><\/p>\n<p>An dieser Stelle machen wir daher einen Schritt zur&uuml;ck und geben uns mit dem kleinen Leerraum zufrieden.<\/p>\n<h2>Rechnungen stellen ist mehr als Berichte drucken &#8230;<\/h2>\n<p>Zum Schluss darf der Hinweis nicht fehlen, dass Sie Rechnungen unbedingt dokumen-tie-ren sollten &#8211; am besten, indem Sie Rechnungen und die enthaltenen Positionen in se-paraten Tabellen sichern.<\/p>\n<p>Das ist unumg&auml;nglich, wenn Sie die Rechnung sp&auml;ter noch ein-mal ausdrucken m&ouml;chten &#8211; ansonsten laufen Sie Gefahr, dass die Rechnung einen v&ouml;l-lig anderen Betrag enth&auml;lt, weil sich beispielsweise in der Zwischenzeit die Mehr-wert-steuer erh&ouml;ht hat.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Rechnungsbericht.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/4EEDB52C-CEA6-424A-A0C6-B106D6CCCEF9\/aiu_1053.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Ausgabe von Rechnungen d&uuml;rfte einer der beliebtesten Anwendungszwecke f&uuml;r die Erstellung von Berichten sein. Gleichzeitig sind Rechnungsberichte aber auch eine der anspruchsvollsten Aufgaben &#8211; zumindest, wenn man s&auml;mtlichen Schnickschnack wie Zwischensumme und &Uuml;bertrag, vern&uuml;nftige Aufteilung der Positionen bei mehrseitigen Berichten, keine letzte Seite ohne wesentliche Informationen et cetera ber&uuml;cksichtigen will. Und wenn Sie dann noch mehrere Rechnungen in einem Bericht abbilden wollen, haben Sie das Ziel erreicht.<\/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":[662016,66052016,44000024],"tags":[],"class_list":["post-55001053","post","type-post","status-publish","format-standard","hentry","category-662016","category-66052016","category-Berichte_und_Reporting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rechnungsbericht - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rechnungsbericht\" \/>\n<meta property=\"og:description\" content=\"Die Ausgabe von Rechnungen d&uuml;rfte einer der beliebtesten Anwendungszwecke f&uuml;r die Erstellung von Berichten sein. Gleichzeitig sind Rechnungsberichte aber auch eine der anspruchsvollsten Aufgaben - zumindest, wenn man s&auml;mtlichen Schnickschnack wie Zwischensumme und &Uuml;bertrag, vern&uuml;nftige Aufteilung der Positionen bei mehrseitigen Berichten, keine letzte Seite ohne wesentliche Informationen et cetera ber&uuml;cksichtigen will. Und wenn Sie dann noch mehrere Rechnungen in einem Bericht abbilden wollen, haben Sie das Ziel erreicht.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T15:24:47+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Rechnungsbericht\",\"datePublished\":\"2020-05-22T15:24:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/\"},\"wordCount\":3912,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/7f9583782c7c45e6bd5500ad68631578\",\"articleSection\":[\"2016\",\"5\\\/2016\",\"Berichte und Reporting\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/\",\"name\":\"Rechnungsbericht - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/7f9583782c7c45e6bd5500ad68631578\",\"datePublished\":\"2020-05-22T15:24:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/7f9583782c7c45e6bd5500ad68631578\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/7f9583782c7c45e6bd5500ad68631578\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rechnungsbericht\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rechnungsbericht - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/","og_locale":"de_DE","og_type":"article","og_title":"Rechnungsbericht","og_description":"Die Ausgabe von Rechnungen d&uuml;rfte einer der beliebtesten Anwendungszwecke f&uuml;r die Erstellung von Berichten sein. Gleichzeitig sind Rechnungsberichte aber auch eine der anspruchsvollsten Aufgaben - zumindest, wenn man s&auml;mtlichen Schnickschnack wie Zwischensumme und &Uuml;bertrag, vern&uuml;nftige Aufteilung der Positionen bei mehrseitigen Berichten, keine letzte Seite ohne wesentliche Informationen et cetera ber&uuml;cksichtigen will. Und wenn Sie dann noch mehrere Rechnungen in einem Bericht abbilden wollen, haben Sie das Ziel erreicht.","og_url":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T15:24:47+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Rechnungsbericht","datePublished":"2020-05-22T15:24:47+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/"},"wordCount":3912,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578","articleSection":["2016","5\/2016","Berichte und Reporting"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/","url":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/","name":"Rechnungsbericht - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578","datePublished":"2020-05-22T15:24:47+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/7f9583782c7c45e6bd5500ad68631578"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Rechnungsbericht"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001053"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001053\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}