Rechnungsverwaltung: Die Rechnung als Bericht

Die Rechnungen unserer Rechnungsverwaltung existieren bisher nur auf dem Bildschirm. Ein Formular eignet sich zum Erfassen, aber nicht für das Dokument, das der Kunde erhält. Dafür brauchen wir einen Bericht, der die Angaben des Absenders, die Anschrift des Kunden, die Positionen und die Summen je Steuersatz zu einem Rechnungsdokument zusammenstellt. Wie wir die Datensatzquelle dafür aufbauen und den Bericht Schritt für Schritt gestalten, liest Du in diesem Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels findest Du in der Datenbank Rechnungsverwaltung_RechnungAlsBericht.accdb.

Sie baut auf der Datenbank aus dem Artikel Rechnungsverwaltung: Die Firmendaten (www.access-basics.de/729) auf.

Die Datensatzquelle des Berichts

Die Rechnung besteht aus Angaben, die einmal auf der Rechnung stehen, und aus Angaben, die sich je Position wiederholen

Die Firmendaten stehen in tblFirma. Rechnungsnummer, Datum und Kundenanschrift gehören zu tblRechnungen, die Positionen zu tblRechnungspositionen. Für den Bericht fassen wir diese Daten in einer Abfrage zusammen.

Lege über Erstellen|Abfragen|Abfrageentwurf eine neue Abfrage an und füge die Tabellen tblFirma, tblRechnungen und tblRechnungspositionen hinzu. Die Beziehung zwischen tblRechnungen und tblRechnungspositionen übernimmt Access aus dem Beziehungsfenster. Die Tabelle tblFirma verknüpfen wir mit keiner der beiden anderen Tabellen (siehe Bild 1).

Die Abfrage qryRechnungsdruck in der Entwurfsansicht, die Tabelle tblFirma ohne Verknüpfung

Bild 1: Die Abfrage qryRechnungsdruck in der Entwurfsansicht, die Tabelle tblFirma ohne Verknüpfung

Ohne Verknüpfung kombiniert Access jeden Datensatz der einen Tabelle mit jedem Datensatz der anderen. Da tblFirma genau einen Datensatz enthält, erhält jede Zeile der Abfrage die Firmendaten. Mehr zu diesem Verhalten liest Du im Artikel Abfragen [basics]: Verknüpfte und unverknüpfte Tabellen gezielt nutzen (www.access-basics.de/702).

Übernimm die folgenden Felder in das Entwurfsraster:

  • tblFirma.*: alle Felder der Firmendaten. Das Sternchen (*) steht für alle Felder der Tabelle.
  • RechnungID, Rechnungsnummer, Rechnungsdatum, Faelligkeitsdatum und Kundennummer: aus tblRechnungen.
  • Positionsreihenfolge, Positionsnummer, Positionsbezeichnung, Menge, Einheit, EinzelpreisNetto und Umsatzsteuersatz: aus tblRechnungspositionen.
  • Positionsbetrag: Trage in eine leere Spalte des Entwurfsrasters den Ausdruck Positionsbetrag: [Menge]*[EinzelpreisNetto] ein.

Sortiere die Abfrage aufsteigend nach RechnungID und danach aufsteigend nach Positionsreihenfolge. Speichere sie unter dem Namen qryRechnungsdruck. Die Anschrift des Kunden fehlt in der Abfrage.

Wir ermitteln sie im nächsten Abschnitt mit einer Funktion.

In der Datenblattansicht sieht die Abfrage wie in Bild 2 aus. Sie liefert alle Felder der Tabelle tblFirma und anschließend die Daten für die Rechnungen.

Ergebnis der Abfrage qryRechnungsdruck

Bild 2: Ergebnis der Abfrage qryRechnungsdruck

Eine Rechnung ohne Positionen liefert in dieser Abfrage keine Zeile und erscheint daher nicht im Bericht.

Die Prozedur cmdRechnungStellen_Click aus dem Artikel Rechnungsverwaltung: Die Rechnungsnummer (www.access-basics.de/724) lässt das Stellen einer Rechnung ohne Positionen nicht zu.

Die Anschrift des Kunden

Die Anschrift besteht aus mehreren Zeilen, von denen einige entfallen können: Privatkunden haben keine Firma, und das Land nennen wir nur bei Kunden im Ausland.

Mit einzelnen Feldern im Bericht blieben leere Zeilen stehen. Deshalb setzen wir die Anschrift zunächst in einer Funktion zusammen, die nur die vorhandenen Zeilen verwendet.

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →