Getränkeverwaltung mit Access

Klaus Giesen Wuppertal

Jeder Mensch muss regelmäßig Flüssigkeit zu sich nehmen. Ist das nicht gewährleistet, nehmen sein Wohlbefinden und damit auch seine Arbeitsleistung deutlich ab. Je nach Größe eines Unternehmens stehen den Mitarbeitern unterschiedliche Getränkequellen zur Verfügung. In vielen Fällen handelt es sich dabei um eine selbst organisierte Getränkeausgabe, bei der Getränke von Mitarbeitern eingekauft und an Kollegen verkauft werden. Die Frage, wer nun wie viele Getränke welcher Sorte getrunken und damit auch zu bezahlen hat, ist rein organisatorischer Natur – und sicher ein Fall für eine Access-Musterlösung, wie der vorliegende Beitrag zeigen wird.

Die im Rahmen des vorliegenden Beitrags vorgestellte Musterlösung dient der Verwaltung von beliebig vielen Getränkesorten.

Die Hauptproblematik liegt darin, den Bestand auf knapp werdende Getränke zu überwachen, um rechtzeitig aufzufüllen.

Die meisten Getränke können eins zu eins weitergegeben werden – z. B. in Flaschen- oder Dosenform. Hier ist die überwachung kein Problem.

Andere Getränke wie z. B. Kaffee oder Tee müssen erst zubereitet und in Portionen ausgegeben werden. Zusätzlich variiert die Anzahl der Portionen je Packungseinheit, was die Kalkulation erschwert – z. B. durch eine sich ändernde Menge Kaffeepulver je Tasse.

Erfassung ausgegebener Getränke

Alle ausgegebenen Getränke werden unter Angabe von Empfänger, Anzahl und Preis in der Datenbank gespeichert. Das geschieht in einem übersichtlichen Formular inklusive Berechnung des aktuell offenen Betrages.

Rechnungsstellung

Die Rechnungsstellung kann zu jeder Zeit für beliebige Mitarbeiter erfolgen.

In Rechnung gestellte Getränke werden entsprechend markiert und nicht mehr angezeigt.

Da eine solche Getränkeausgabe in der Regel in überschaubarem Rahmen unter Kollegen erfolgt, wird von der sofortigen Bezahlung offener Rechnungen ausgegangen.

Dementsprechend beinhaltet die Anwendung keine Funktionalität zur Verbuchung von Zahlungseingängen usw.

Ergänzung der Getränkevorräte

Um der Problematik des variierenden Kaffeeverbrauchs gerecht zu werden, benötigt die Anwendung bei den entsprechenden Getränkesorten die Angabe eines Umrechnungsfaktors.

Dieser Faktor gibt an, wie viele Einheiten man je Bestandseinheit des Ausgangsprodukts erhält.

Kaffee

Da Kaffee in unterschiedlichen Packungsgrößen erhältlich ist, setzt die Anwendung eine denkbar kleine Bestandseinheit an: ein Gramm. Als Umrechnungsfaktor verwendet die Anwendung z. B. den Wert 0,1, was bedeutet: aus einem Gramm Kaffeepulver wird 1/10 Tasse Kaffee – also werden 10g je Tasse benötigt.

Bild 1: Die Tabelle tblPersonal in der Entwurfsansicht

Andere Getränke

Getränke wie Cola, Fanta, Mineralwasser usw. haben fest definierte Bestandseinheiten, die genau einer ausgegebenen Einheit entsprechen: eine Flasche, eine Dose usw.

Bestandsüberwachung

Damit ist die Problematik der Bestandsüberwachung geklärt. Mit festen Umrechnungsfaktoren zwischen gekauften Einheiten und ausgegebenen Portionen kann aufgrund der als verkauft gebuchten Getränke relativ zuverlässig auf notwendige Bestandsergänzungen aufmerksam gemacht werden. Dazu ist lediglich noch die Angabe von Grenzwerten für die einzelnen Getränke nötig.

Damit ist die regelmäßige Versorgung der Mitarbeiter mit Getränken gesichert. Wie wichtig das ist, erfahren Sie spätestens, wenn Sie einen Programmierer einen Tag auf Kaffeeentzug setzen …

Voreinstellungen

Als Grundlage für Berechnungen benötigt die Datenbank bestimmte Voreinstellungen, die zudem flexibel sein sollen. Dabei geht es um folgende Angaben:

  • Anzahl der Tassen pro Gramm Kaffee
  • Eingabe der Grenzwerte für die Hinweismeldung, dass eine Bestandsergänzung notwendig ist.
  • Hinweis

    Sie finden die Beispieldatenbanken zu dieser Musterlösung auf der Heft-CD für Access 97 (Getränke97.mdb) und Access 2000 (Getränke2000.mdb).

    Das Datenmodell der Musterlösung besteht aus den vier Tabellen tblPersonal, tblGetraenkeVerbrauch, tblGetraenkeTyp und tblBestandsErgaenzung. In den folgenden Abschnitten lernen Sie die Tabellen kennen und erhalten Erläuterungen und Hinweise zu wichtigen Besonderheiten.

    Die Tabelle tblPersonal

    Die Tabelle tblPersonal enthält die Stammdaten der Mitarbeiter mit Kontaktinformationen (siehe Bild 1).

    Die TabelletblGetraenkeVerbrauch

    Die Tabelle tblGetraenkeVerbrauch (siehe Bild 2) dient zur Erfassung der ausgegebenen Getränke und einiger Zusatzinformationen wie Empfänger, Anzahl und Datum.

    Die Felder TypID und PersonalID dienen als Verknüpfungsfelder zu den Tabellen tblGetraenketyp und tblPersonal.

    Zur Vereinfachung der späteren Eingabe der entsprechenden Informationen werden beide Felder als Kombinationsfelder ausgeführt.

    Nehmen Sie die folgenden Einstellungen im Register Nachschlagen in den Feldeigenschaften des jeweiligen Feldes vor: Als Datensatzherkunft für das Feld TypID dient die Tabelle tblGetraenketyp. Stellen Sie außerdem die Eigenschaften Spaltenanzahl und Spaltenbreite auf die Werte 2 und 0cm;4cm ein, damit nur die zweite Spalte angezeigt wird.

    Bild 2: Die Tabelle tblGetraenkeVerbrauch in der Entwurfsansicht

    Bild 3: Die Tabelle tblGetraenkeTyp in der Entwurfsansicht

    Als Datenherkunft für das Feld PersonalID dient die Abfrage qryFullname:

    SELECT tblPersonal.PersonalID, [Nachname] & ", " & [Vorname] AS Fullname FROM tblPersonal;

    Die Eigenschaften Spaltenanzahl und Spaltenbreite erhalten die Werte 2 und 0cm;8cm.

    Durch diese änderungen stehen die beiden Felder bei der Verwendung in Formularen ohne weitere Maßnahmen direkt als Kombinationsfelder zur Verfügung.

    Neben diesen beiden Verknüpfungsfeldern sind noch Felder für das Datum der Ausgabe und die Menge der ausgegebenen Einheiten vorhanden.

    Das Feld Einheiten ermöglicht sowohl die Verbuchung von Getränken als auch die Berechnung der vom Käufer zu zahlenden Summe. Es besitzt den Standardwert 1, da immer mindestens ein Getränk ausgegeben wird.

    Das Feld Datum ist zur bequemen Eingabe mit der Funktion Datum() als Standardwert versehen. Diese Funktion trägt für jeden Datensatz das aktuelle Datum in das Feld Datum ein.

    Wichtig für die Funktionalität der Musterlösung ist noch das boolesche Feld Bezahlt, für das der Standardwert Nein eingestellt ist.

    Mit Hilfe des Feldes Bezahlt kann sichergestellt werden, dass verbrauchte Getränke nur einmal bezahlt werden.

    Beim Ausdruck der Rechnung wird dieses Feld für abgerechnete Getränke auf den Wert True bzw. Ja gesetzt.

    Die beiden Felder Einzelpreis und Umrechnungsfaktor haben eine besondere Bedeutung:

    Feldname

    Beschreibung

    TypPreis

    Der Verkaufspreis pro ausgegebener Einheit in Euro.

    TypMindestbestand

    Zahlenwert, der die Mindestvorratsmenge für einen Getränketyp festlegt.

    TypUmrechnungsfaktor

    Ermöglicht die Ermittlung von Einheiten (Portionen) bei Halbfertigartikeln wie beispielsweise Kaffee. Limonade dagegen ist ein Fertigartikel und deshalb ist hier der Umrechnungsfaktor gleich 1.

    Tab. 1: Felder der Tabelle tblGetraenkeTyp mit Erläuterungen

    Da sich während der Verwendung einer solchen Musterlösung durchaus Veränderungen bezüglich des Preises oder der Menge von ausgegebenen Portionen je Bestandseinheit ergeben können, müssen diese mit den ausgegebenen Getränken gespeichert werden. Anderenfalls können z. B. folgende Probleme auftreten:

  • Ein neuer Preis für ein Getränk wirkt sich auf bereits ausgegebene Getränke aus.
  • Durch eine änderung des Umrechnungsfaktors (z. B. durch die Anschaffung neuer Kaffeetassen mit anderer Füllmenge) ändert sich die verbrauchte Menge der Bestandseinheiten rückwirkend für alle ausgegebenen Getränke.
  • Die Tabelle tblGetraenkeTyp

    Bild 4: Die Tabelle tblBestandsErgänzung in der Entwurfsansicht

    Bild 5: Das Dialogfenster Beziehungen

    Die Tabelle tblGetraenkeTyp (siehe Bild 3) enthält die Stammdaten zu den einzelnen Getränketypen wie Kaffee, Limonade, Wasser usw.

    In Tab. 1 finden Sie eine nähere Beschreibung zu den wichtigsten Feldern der Tabelle tblGetraenkeTyp.

    Die TabelletblBestandsergaenzung

    Die Tabelle tblBestandsergaenzung speichert die zugekauften Getränke (siehe Bild 4). Sie ist also quasi die Warenannahme und stellt somit das Gegenstück zur Tabelle tblGetraenkeverbrauch dar.

    Die Beziehungen zwischen denTabellen

    Nach der Erstellung der Tabellen legen Sie deren Beziehungen zueinander im Dialogfenster Beziehungen fest. Die Musterlösung enthält zwei 1:n-Beziehungen, bei denen sich die Tabelle tblGetraenkeVerbrauch jeweils auf der n-Seite der Beziehung befindet (siehe Bild 5).

    Legen Sie für beide Beziehungen referentielle Integrität fest. Aktivieren Sie auf keinen Fall die Löschweitergabe für eine der beiden Beziehungen. Anderenfalls führt das Löschen z. B. eines Datensatzes der Tabelle tblPersonal zum Entfernen der entsprechenden Datensätze der Tabelle tblGetraenkeVerbrauch – was zu einer Verfälschung der Bestandsermittlung führen würde.

    Die Getränkeverwaltung enthält insgesamt sechs Formulare, die Sie in den folgenden Abschnitten näher kennen lernen werden.

    Bild 6: Das Formular frmHauptmenue

    Das Hauptmenü

    Das Formular frmHauptmenue ist die Schaltzentrale der Anwendung. Sie hat fünf Schaltflächen, von denen vier dem Aufrufen der weiteren Formulare dienen und eines dem Beenden der Anwendung (siehe Bild 6).

    Wichtige Formulareigenschaften

    Damit das Hauptformular nur über die entsprechende Schaltfläche zu schließen ist, stellen Sie einige Eigenschaften gemäß Tab. 2 ein.

    Hinweis

    Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

    TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

    Schreibe einen Kommentar