Rechnungsverwaltung: Das Datenmodell

Mit diesem Artikel beginnen wir eine neue Reihe. Schritt für Schritt bauen wir eine vollständige Rechnungsverwaltung auf – mit Kunden, Artikeln, Rechnungen und Positionen, später mit Formularen zur Eingabe und Berichten für den Ausdruck. Bevor davon irgendetwas entstehen kann, brauchen wir ein tragfähiges Fundament: die Tabellen. Und gerade bei einer Rechnungsverwaltung ist das Fundament kein Nebenschauplatz, denn hier gelten Regeln, die eine einfache Adressverwaltung nicht kennt. Warum wir welche Tabelle, welches Feld und welchen Datentyp wählen – und warum manche Entscheidung anders ausfällt, als man zunächst denkt -, liest Du in diesem Artikel.

Weiterlesen

Rechnungsverwaltung: Artikelübersicht und -details

Das Datenmodell steht – jetzt geben wir ihm eine Oberfläche. Wir beginnen mit den Artikeln und bauen dafür ein Gespann aus zwei Formularen, das sich durch die ganze Reihe ziehen wird: eine Übersicht, die alle Artikel auflistet und durchsuchbar macht, und ein Detailformular, das einen einzelnen Artikel zum Bearbeiten anzeigt. Der Reiz liegt im Zusammenspiel der beiden – und in einem kleinen Trick, mit dem das Detailformular der Übersicht mitteilt, ob überhaupt etwas gespeichert wurde. Wie das gelingt, liest Du in diesem Artikel.

Weiterlesen

Rechnungsverwaltung: Kundenübersicht und -details

Im vorherigen Artikel haben wir die Artikel mit einem Formularpaar aus Übersicht und Detail ausgestattet. Genau dasselbe brauchen die Kunden – und weil die Struktur identisch ist, geht der Aufbau diesmal deutlich schneller. Wir können uns dafür auf die Stellen konzentrieren, an denen Kunden sich von Artikeln unterscheiden: Sie haben Nachschlagefelder für Anrede und Land, sie können Firmen oder Privatpersonen sein, und beim Löschen ist mehr Vorsicht geboten. Wie das Kundenformular entsteht, liest Du in diesem Artikel.

Weiterlesen

Rechnungsverwaltung: Das Rechnungsformular

Die Stammdaten stehen – Artikel und Kunden lassen sich bequem erfassen. Jetzt kommt das Herzstück der Anwendung: das Formular, mit dem eine Rechnung entsteht. Es ist das anspruchsvollste der Reihe, denn hier passiert zum ersten Mal etwas, das die Stammdatenformulare nicht kannten – wir rechnen. Ein Hauptformular nimmt Kunde und Datum auf, ein Unterformular die einzelnen Positionen, und ganz unten sollen Nettosumme, Mehrwertsteuer und Bruttobetrag erscheinen. Dabei zeigt sich ein Stolperstein, an dem selbstgebaute Rechnungen reihenweise scheitern. Wie das Rechnungsformular entsteht und wie wir dabei richtig rechnen, liest Du in diesem Artikel.

Weiterlesen

Rechnungsverwaltung: Rechnungen eines Kunden

Das Kundendetailformular zeigt bisher nur die Stammdaten eines Kunden – Name, Anschrift, Kontaktdaten. Was fehlt, ist der Blick auf das Geschäft: Welche Rechnungen hat dieser Kunde eigentlich erhalten? Diese Frage beantworten wir, indem wir dem Formular ein Unterformular hinzufügen, das genau die Rechnungen des gerade angezeigten Kunden auflistet. Das Prinzip dahinter kennen wir bereits aus dem Rechnungsformular – Verknüpfen von und Verknüpfen nach -, nur wenden wir es diesmal auf eine andere Beziehung an. Und ganz nebenbei wird dabei sichtbar, wozu die historisierten Felder aus dem Datenmodell gut sind. Außerdem legen wir von hier aus neue Rechnungen an und öffnen vorhandene zum Bearbeiten. Wie das gelingt, liest Du in diesem Artikel.

Weiterlesen

Tabellen [basics]: Arbeit sparen mit Beschriftungen

Feldnamen wie AnredeID oder EMail sind praktisch beim Entwickeln, aber niemand möchte sie als Spaltenüberschrift in einer Tabelle oder als Bezeichnungsfeld in einem Formular lesen. Meist gewöhnt man sich an, jedes Bezeichnungsfeld von Hand umzubenennen – wieder und wieder, in jedem Formular neu. Dabei gibt es eine Feldeigenschaft, die genau das ein für 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.

Weiterlesen

Berichte [basics]: Unterberichte einsetzen

Bisher haben wir Berichte gebaut, die Daten aus verknüpften Tabellen über eine Gruppierung strukturieren – der Leser im Gruppenkopf, seine Ausleihen darunter. Das funktioniert tadellos, solange es eine Liste je Datensatz gibt. Sobald es zwei werden, bricht das Verfahren zusammen, und zwar so unauffällig, dass man es leicht übersieht. Wir bauen deshalb einen Steckbrief für Bücher – mit den Autoren und der Ausleihhistorie -, sehen zu, wie er scheitert, und lösen das Problem mit Unterberichten. Wie das gelingt, liest Du in diesem Artikel.

Weiterlesen

Formulare [basics]: Detailform öffnen und auswerten

Im vorigen Artikel haben wir ein Hauptformular mit einem Unterformular in der Datenblattansicht erstellt. Neue Datensätze wurden direkt in der Datenblattzeile angelegt. Das funktioniert gut für einfache Tabellen, stößt aber schnell an Grenzen, wenn viele Felder zu füllen sind oder Nachschlagefelder und Anlagefelder übersichtlich dargestellt werden sollen. In diesem Artikel erweitern wir das Formular um ein modales Detailformular, das alle Felder der Tabelle tblBuecher komfortabel in der normalen Formularansicht anzeigt.

Weiterlesen

Berichte [basics]: Wiederholte Werte ausblenden

Im Artikel Berichte [basics]: 1:n-Daten im Bericht ausgeben (www.access-basics.de/****) haben wir Leser und Ausleihen über eine Gruppierung getrennt: der Leser im Gruppenkopf, seine Ausleihen darunter. Manchmal will man aber gar keine Blöcke, sondern eine schlichte Liste – 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ür eine Eigenschaft an, die genau das abstellt – und die tückischer ist, als ihr Name vermuten lässt. Was sie kann, was sie nicht kann und wie Du ihr die entscheidende Schwäche austreibst, liest Du in diesem Artikel.

Weiterlesen

Formulare [basics]: Steuerelemente korrekt benennen

Wenn wir mit Kunden zusammenarbeiten, schauen wir uns auch immer die Datenbanken einmal genau an. Was uns dabei oft auffällt: Die Benennung von Steuerelementen wird äußerst stiefmütterlich gehandhabt. Das bedeutet, dass diese nach dem Anlegen einfach gar nicht umbenannt werden. Das führt dazu, dass wir in diesen Formularen viele Steuerelemente vorfinden, die einfach Text0, Text1, Befehl2 der Kombinationsfeld43 heißen. Wenn Steuerelement überhaupt einen aussagekräftigen Namen erhalten, handelt es sich um gebundene Felder, die aus der Feldliste ins Formular gezogen wurden. Diese heißen dann immerhin KundeID, Vorname oder Nachname. Dieser Artikel beschreibt, wie man Steuerelemente optimal benennt – und welche Vorteile dies bietet.

Weiterlesen