Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2005.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Artikelverwaltung mit Inventurfunktion

André Minhorst, Duisburg

Die Verwaltung von Artikeln ist eines der Haupteinsatzgebiete von Datenbankanwendungen. Gerade in Zeiten von Online-Shops mit Datenbankanbindung und stetig zunehmenden Handels auf Auktionsplattformen wie eBay erleben Datenbankanwendungen zur Verwaltung von Artikeln eine Renaissance. Da will Access im Unternehmen nicht außen vor stehen und startet mit der Artikelverwaltung des vorliegenden Beitrags eine neue Reihe mit Musterlösungen, der unter anderem Datenbanken für Bestellverwaltung, Faktura und Mahnwesen folgen werden.

Artikelverwaltung für alle

Wer mit der Zeit geht, der wirft nichts mehr weg, sondern er verkauft, was er nicht mehr braucht. Vielleicht macht er das Ganze auch gewerbsmäßig oder bestreitet mit dem An- und Verkauf diverser Produkte ganz oder teilweise seinen Lebensunterhalt Irgendwann wird es dann Zeit, sich einmal mit dem Einsatz einer Artikelverwaltung anzufreunden - erst recht, wenn diese wie die in diesem Beitrag besprochene auch noch eine Inventurfunktion und in folgenden Ausgaben noch Erweiterungen wie eine Bestellverwaltung, eine Fakturierung und ein Mahnwesen mit sich bringt.

In den folgenden Kapiteln erfahren Sie, wie Sie Artikel und damit in Zusammenhang stehende Informationen in einer Datenbank speichern und verwalten können. Dazu gehört neben den Artikeln selbst noch Informationen über Wareneingänge und -ausgänge, Umbuchungen und Inventuren. Teilweise werden für diese Anwendung bereits Tabellen verwendet, die erst in den in folgenden Beiträgen zu diesem Themenkomplex behandelt werden - dazu gehört die Verwaltung von Bestellungen und Kunden.

Die Formulare zur Eingabe der entsprechenden Daten sind dementsprechend rudimentär und werden zukünftig ausgebaut.

Wenn Sie bereits einen Online-Shop führen oder in dieses Geschäft einsteigen möchten, ist Access als Datenbackend auf dem Internetserver sicher nicht die erste Wahl - hier kommen besser geeignete Systeme wie MySQL zum Zuge. Das folgende Know-how können Sie hier dennoch einsetzen - denn auch die Daten in einer MySQL-Datenbank auf dem Server wollen erst einmal verwaltet werden. Und das lässt sich mit einem Access-Frontend sicher besser bewerkstelligen als mit einer Web-Benutzungsoberfläche - und die Erstellung des Access-Frontends ist in den meisten Fällen wesentlich weniger aufwändig und damit auch kostengünstiger.

Das Datenmodell können Sie auch für eine MySQL-Datenbank verwenden; die Formulare und Berichte lassen sich ebenfalls mit einer MySQL-Datenbank kombinieren. Wie das sogar über das Internet funktioniert, erfahren Sie im Beitrag MySQL und Access in Ausgabe 6/2004.

Funktionen der Musterlösung

Das Kernstück der Artikelverwaltung ist das Formular zur Ansicht der Artikeldetails. Hier finden sich sowohl die Stammdaten des Artikels wie Bezeichnung, Beschreibung, Hersteller, Lieferanten, Einheit, Mehrwertsteuersatz, Verkaufspreis, Kategorie und der Meldebestand. Auch eine Abbildung lässt sich zu jedem Artikel speichern. Die Anzeige dieser Informationen erfolgt auf der ersten Registerseite des Formulars aus Abb. 1.

Zusätzlich können Sie zu jedem Artikel den Wareneingang und -ausgang, die Umbuchungen sowie Informationen zu den Inventuren anzeigen lassen. Diese Informationen zeigt das Formular auf der zweiten Registerseite an (s. Abb. 2).

Abb. 1: Verwaltung der Stammdaten eines Artikels

Abb. 2: Anzeige von Wareneingängen und -ausgängen

Abb. 3: Bearbeiten von Wareneingängen

In dieser Version der Artikelverwaltung lassen sich Wareneingänge, -ausgänge und Umbuchungen mit entsprechenden Formularen eingeben.

Die Bearbeitung der Wareneingänge erfolgt nach dem Betätigen einer der Schaltflächen Bearbeiten oder Neuer Wareneingang in dem Formular aus Abb. 3.

Warenausgänge sind in der Regel mit einer Bestellung verknüpft. Das ist auch in diesem Fall so: Warenausgänge, die nicht mit einer Bestellung zusammenhängen, müssen als Umbuchung gespeichert werden.

Bestellungen legen Sie durch Betätigen der Schaltfläche Zu den Bestellungen und anschließendes Eingeben der Bestellung im Formular aus Abb. 4 an.

Die mit diesem Formular verbundene Eingabe von Liefer- und Rechnungsadressen wird in einem separaten Beitrag zum Thema "Bestellverwaltung" in einer der kommenden Ausgaben behandelt; die aktuelle Version dieses und der damit verknüpften Formulare wird unter Umständen noch die eine oder andere Änderung über sich ergehen lassen müssen.

Die dritte Art der Bestandsänderung sind Umbuchungen. Auch hier ist das Artikelformular Ausgangspunkt zum Aufruf eines weiteren Formulars zum Bearbeiten der Bestandsänderungen
(s. Abb. 5).

Das letzte Listenfeld auf der zweiten Registerseite des Artikelformulars enthält die Informationen über Inventuren. Die dort angezeigten Daten beziehen sich jeweils auf den aktuell im Formular angezeigten Artikel.

Abb. 4: Eingabe einer Bestellung

Abb. 5: Bearbeiten einer Umbuchung

Abb. 6: Eintragen von Inventurdaten per Formular

Per Mausklick auf die Schaltfläche "Inventur starten" öffnen Sie das Formular aus Abb. 6.

Das Formular zeigt das Datum der letzten Inventur und den Bestand zu diesem Zeitpunkt an. Für die aktuelle Inventur wird das Datum voreingestellt sowie der Bestand laut Datenbank angezeigt. Der Benutzer muss gegebenenfalls noch das Inventurdatum anpassen und den tatsächlichen Bestand dieses Artikels eintragen.

Das Feld Differenz zeigt den Unterschied zwischen tatsächlicher und berechneter Anzahl an. Nach Betätigen der Schaltfläche "Inventur speichern" trägt eine Routine die Differenz in Form eines neuen Umbuchungs-Datensatzes in die entsprechende Tabelle ein.

Datenmodell

Der nachfolgend besprochene Teil des Datenmodells der Artikelverwaltung enthält elf Tabellen. Die beiliegende Version der Beispieldatenbank bietet noch einige Tabellen mehr, die aber mit der Bestellverwaltung zusammenhängen, die in einer der folgenden Ausgaben erläutert wird. Eine Übersicht über das Datenmodell finden Sie in Abb. 7.

Artikel

Die Tabelle tblArtikel enthält die Detailinformationen zu den einzelnen Artikeln. Die Tabelle beinhaltet drei Fremdschlüsselfelder für die Auswahl eines Herstellers aus der Tabelle tblHersteller, eine Einheit wie beispielsweise Kilogramm oder Flaschen aus der Tabelle tblEinheiten und eine Kategorie aus der Tabelle tblKategorien.

Außerdem speichert die Tabelle die Artikelnummer, die der jeweilige Hersteller für den Artikel vorhält, die Bezeichnung und eine kurze Beschreibung des Artikels, den Mehrwertsteuersatz und den Meldebestand.

Das ist der Lagerbestand, bei dessen Erreichen neue Ware geordert werden muss.

Und natürlich darf auch ein OLE-Feld zum Speichern einer Abbildung nicht fehlen; zusätzlich ist auch noch ein Feld für den Dateinamen der Abbildung vorgesehen.

Abb. 7: Das Datenmodell der Artikelverwaltung

Kategorien

Die für jeden Artikel auszuwählende Kategorie stammt aus der Tabelle tblKategorien. Diese enthält lediglich die Felder KategorieID als Primärschlüsselfeld, die Bezeichnung der Kategorie und ein Fremdschlüsselfeld mit Bezug auf den Primärschlüssel derselben Tabelle. Dieser kann nützlich sein, wenn Sie mit mehreren Kategorieebenen arbeiten möchten. In der hier beschriebenen Fassung der Artikelverwaltung ist das allerdings nicht der Fall.

Lieferanten und Hersteller

Die Lieferanten und Hersteller teilen sich die Tabelle tblFirmen. Das ist einerseits sinnvoll, weil Hersteller und Lieferant eines Artikels ja durchaus identisch sein können. Davon abgesehen unterscheiden sich Lieferanten und Hersteller aber dadurch, dass es für jeden Artikel nur einen Hersteller, aber mehrere Lieferanten geben kann.

Deshalb wird der Hersteller des Artikels auch einfach über ein Fremdschlüsselfeld der Artikeltabelle ausgewählt, während die Festlegung des oder der Lieferanten über eine Verknüpfungstabelle erfolgt, die eine m:n-Beziehung zwischen den Tabellen tblArtikel und tblFirmen aufbaut.

Einheiten

Die Tabelle tblEinheiten dient als Lookuptabelle für das Fremdschlüsselfeld EinheitID der Artikeltabelle. Die Tabelle enthält neben dem Primärschlüsselfeld lediglich das Feld mit der Bezeichnung der Einheit.

Lagerbestand

Der Lagerbestand eines Artikels ist nur zu einem Zeitpunkt als Wert gespeichert - nämlich wenn soeben eine Inventur durchgeführt und noch keine Änderung des Bestands des zu untersuchenden Artikels stattgefunden hat. In allen anderen Fällen ermittelt die Anwendung den Lagerbestand aus dem Bestand zum Zeitpunkt der letzten Inventur und allen seitdem erfolgten Bestandsänderungen.

Bestandsänderungen

Die Tabelle tblBestandsaenderungen speichert alle Bestandsänderungen, egal ob es sich um einen Wareneingang oder einen Warenausgang handelt. Die Tabelle enthält das Primärschlüsselfeld BestandsaenderungID, die ArtikelID des betroffenen Artikels, die gebuchte Menge und das Buchungsdatum der Bestandsänderung. Für die Durchführung von Inventuren ist es außerdem wichtig, bereits in einer früheren Inventur berücksichtigte Bestandsänderungen zu kennzeichnen, damit diese nicht erneut in die Berechnung des aktuellen Bestands einbezogen werden. Schließlich enthält das Feld Vorzeichen Informationen, ob es sich um einen Wareneingang oder -ausgang handelt. Das Feld beinhaltet entweder den Wert 1 oder -1 und wird bei der Inventur multiplikativ in die Berechnung des Bestandes miteinbezogen. In Abb. 8 finden Sie den Aufbau der Tabelle und die Datentypen der einzelnen Felder.

Abb. 8: Felder und Felddatentypen der Tabelle tblBestandsaenderungen

Detaildaten der
Bestandsänderungen

Die Tabelle tblBestandsaenderungen ist über 1:1-Beziehungen mit den drei Tabellen tblWareneingang, tblWarenausgang und tblUmbuchungen verknüpft. Jede dieser Tabellen enthält Erweiterungsdaten zu Datensätzen der Tabelle tblBestandsaenderungen.

Hinweis

Im Beitrag 1:1-Beziehungen in der vorliegenden Ausgabe von Access im Unternehmen finden Sie weitere Informationen zum Aufbau dieser Beziehungen; der hier vorliegende Fall wird dort außerdem beispielhaft beschrieben. (

Inventuren

Eine Inventur ist eine Überprüfung des Lagerbestandes zu einem bestimmten Zeitpunkt. Dieser Lagerbestand ist der Ausgangspunkt für die Ermittlung des aktuellen Lagerbestandes zwischen zwei Inventuren.

Die Tabelle tblInventur speichert die Daten für jeden einzelnen bei der Inventur berücksichtigen Artikel. Dadurch können auch Teilinventuren durchgeführt werden. Die Tabelle enthält die Felder aus Abb. 9.

Abb. 9: Die Tabelle tblInventuren in der Entwurfsansicht

Formulare der
Artikelverwaltung

Da die Tabellen noch keine Daten enthalten, erstellen Sie die Formulare in der Reihenfolge, in der Sie anschließend direkt die jeweiligen Daten eingeben können.

Formular zum Bearbeiten
von Firmen

Die Tabelle tblFirmen enthält Informationen zu den Unternehmen der Lieferanten oder Hersteller eines Produkts.

In den folgenden Schritten erstellen Sie das Formular aus Abb. 10 zum Bearbeiten von Firmen:

  • Erstellen Sie ein neues Formular und zeigen Sie es in der Entwurfsansicht an.
  • Stellen Sie die Eigenschaft Datenherkunft auf die Tabelle tblFirmen ein.
  • Aktivieren Sie die Feldliste und ziehen Sie alle enthaltenen Felder in den Detailbereich des Formulars. Passen Sie deren Größe entsprechend den zu erwartenden Inhalten an.
  • Stellen Sie die Eigenschaft Beschriftung des Formulars auf Firma Detailansicht ein.
  • Fügen Sie eine Schaltfläche namens cmdOK zum Schließen des Formulars hinzu.
  • Damit die Schaltfläche das Formular auch schließt, erstellen Sie für die Ereigniseigenschaft Beim Klicken eine entsprechende Prozedur (s. Quellcode 1). (
  • Abb. 10: Formular zum Bearbeiten von Firmendaten

    Private Sub cmdOK_Click()

        If IsNull(Me.OpenArgs) Then

            DoCmd.Close acForm, Me.Name

        Else

            DoCmd.RunCommand acCmdSaveRecord

            Me.Visible = False

        End If

    End Sub

    Quellcode 1

    Die Prozedur prüft, ob beim Aufruf des Formulars ein Öffnungsparameter übergeben wurde. Falls ja, geht das Formular davon aus, dass die enthaltenen Daten beziehungsweise der angezeigte Datensatz noch von der aufrufenden Prozedur verarbeitet werden und diese nachher das Formular schließt.

    Damit das Formular nur über die Schaltfläche cmdOK und nicht über die eingebauten Schließen-Funktionen geschlossen werden kann, blenden Sie entweder das Systemfeldmenü aus oder deaktivieren die Schließen-Schaltfläche. Dazu weisen Sie wahlweise der Eigenschaft Mit Systemfeldmenü oder Schließen Schaltfläche den Wert Nein zu.

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.