Verleihen und Entleihen mit Access und Outlook

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Autor: André Minhorst, Duisburg

Das Entleihen und Verleihen spielt im Berufs- wie auch im Privatleben eine große Rolle. Wer kauft sich schon alles selbst, wenn ein Freund, Bekannter oder Arbeitskollege den gewünschten Gegenstand besitzt und man diesen nur für kurze Zeit benötigt Und hier fangen die Sorgen an: Je mehr man entleiht und verleiht, desto eher verliert man den überblick, wem was gehört und wem man was geliehen hat. Um Ordnung in die Welt des Leihens zu bringen, verwenden Sie – wie soll es schon anders sein – natürlich eine Datenbankanwendung.

Falls Sie beispielsweise eine umfangreiche CD- oder Videosammlung mit offenem Zugang für Freunde und Arbeitskollegen besitzen oder selbst gerne mal Bücher aus der Bibliothek leihen, es ist immer gut zu wissen, welche Ihrer Besitztümer kurz- oder langfristig ihren Standort gewechselt haben, wo sie sich befinden und vor allem bis wann. Das gilt natürlich auch für Dinge, die Sie selbst entliehen haben.

Interessant ist dabei vor allem die Möglichkeit, hin und wieder an die Fälligkeit der Bücher aus der Stadtbibliothek erinnert zu werden, und es ist auch schön, wenn man nicht erst nach einem halben Jahr den Videofilm in seiner Sammlung findet, den man nur für ein Wochenende leihen wollte.

Hinweis

Eine komplette Anleitung zum Erstellen der hier vorgestellten Datenbank würde den Rahmen des Beitrags bei weitem sprengen. Daher verweist der Beitrag hin und wieder darauf, den Quellcode in der Beispieldatenbank einzusehen.

Um diesen alltäglichen und nervenden Problemen aus dem Weg zu gehen, verwenden Sie eine Datenbankanwendung. Mit Hilfe geeigneter Formulare können Sie eingeben, wann Sie was von wem entliehen haben und wann Sie es zurückgeben möchten bzw. müssen. Das Gleiche gilt für die andere Richtung: Auch die verliehenen Gegenstände soll die Datenbank aufnehmen.

Und damit das Ganze richtig praktisch wird, ziehen Sie Microsoft Outlook hinzu: Auf Knopfdruck soll die Access-Datenbank einen Eintrag in Ihrem Terminkalender erstellen, der Sie rechtzeitig an die Rückgabe erinnert.

Das Datenmodell besteht im Groben aus drei Tabellen. Dabei handelt es sich um die Tabellen tblPersonen, tblGegenstaende und tblVerleih.

Die Tabellen

In den folgenden Abschnitten erhalten Sie einen überblick über die Tabellen der Datenbank und deren Beziehungen.

Die Tabelle tblKontakte

Die Tabelle tblKontakte soll nicht nur Personen, sondern auch Institutionen wie die Bibliothek, den Videoverleih und andere aufnehmen – also einfach alles und jeden, mit dem Sie irgendwie in ein Leihgeschäft verwickelt werden können.

Um die Struktur der Tabelle möglichst einfach zu halten, soll sie neben dem Namen der Institution oder der Person lediglich die Adressdaten sowie Telefonnummer, Faxnummer und E-Mailadresse enthalten (siehe Bild 1).

Die Tabelle tblGegenstaende

Die Tabelle tblGegenstaende beinhaltet alle Gegenstände, die Sie verleihen oder entleihen. Auch hier sollen zunächst zur die unbedingt benötigten Informationen gespeichert werden (siehe Bild 2).

Bild 1: Felder der Tabelle tblKontakte

Bild 2: Die Tabelle tblGegenstaende

Bild 3: Die Tabelle tblVerleih

Die Tabelle tblVerleih

Die Tabelle tblVerleih (siehe Bild 3) verbindet die beiden Tabellen tblKontakte und tblGegenstaende miteinander. Sie ist der eigentliche Kern des Datenmodells. Jeder Datensatz der Tabelle enthält einen Verweis auf einen Kontakt, der in den Leihvorgang verwickelt ist, einen Verweis auf den entsprechenden Gegenstand sowie einige weitere Informationen.

Dazu gehören das Verleihdatum, das Datum, an dem die Rückgabe spätestens erfolgen soll, sowie das Datum der tatsächlichen Rückgabe. Da die Datenbank auch die Möglichkeit einer Fristverlängerung berücksichtigen soll, enthält diese Tabelle ein Feld für die Angabe der Anzahl der Verlängerungen. Schließlich enthält sie noch das Feld AnOutlook, in dem gespeichert wird, ob der Rückgabetermin in den Outlook-Kalender eingetragen werden soll.

Weitere Tabellen

Es gibt noch zwei weitere Tabellen, die allerdings nur als Hilfstabellen zu betrachten sind: Die Tabelle tblGeliehenOderVerliehen enthält lediglich die beiden Einträge Geliehen und Verliehen. Sie dient als Datensatzherkunft für das Nachschlagefeld GeliehenOderVerliehenID der Tabelle tblVerleih.

Die Tabelle tblGegenstandArten enthält die unterschiedlichen Kategorien zur genaueren Einteilung der Gegenstände.

Die Beziehungen zwischen denTabellen

Wenn Sie die Tabellen erstellt haben, können Sie die Beziehungen zwischen den Tabellen einstellen. Als Vorlage dient das Beziehungsfenster aus Bild 4.

Legen Sie in den Eigenschaften der Beziehungen jeweils referentielle Integrität fest.

Die vier Beziehungen werden in den Tabellen jeweils als Nachschlagefelder ausgeführt. Zur Erstellung der Nachschlagefelder können Sie entweder den Assistenten verwenden oder die Eigenschaften von Hand einstellen.

Bild 4: Beziehungsfenster der Datenbank

Bild 5: Nachschlage-Eigenschaften der Tabelle tblGegenstaende

Bild 6: Datensatzherkunft des Nachschlagefeldes GegenstandArtID

Für die zweite Möglichkeit führen Sie die folgenden Schritte aus (hier am Beispiel der Tabelle tblGegenstaende, deren Feld GegenstandArtID als Nachschlagefeld für die Datensätze der Tabelle tblGegenstandArten dient):

  • öffnen Sie die Tabelle tblGegenstaende in der Entwurfsansicht.
  • Wechseln Sie im Bereich Feldeigenschaften in das Register Nachschlagen.
  • Stellen Sie dort die Eigenschaften wie in Bild 5 ein.
  • Für das Einstellen der Eigenschaft Datensatzherkunft verwenden Sie den Abfrage-Editor. Klicken Sie dazu in das Feld Datensatzherkunft und betätigen Sie die nun erscheinende Schaltfläche mit den drei Punkten (…).
  • Erstellen Sie die Abfrage entsprechend Bild 6 und schließen Sie den Editor.
  • Die verwendete Abfrage enthält in der Regel das Primärindexfeld der Tabelle sowie das oder die Felder, die das Nachschlagefeld anzeigen soll – in diesem Fall das Feld GegenstandArtID und das anzuzeigende Feld GegenstandArt.

    Legen Sie auf die gleiche Weise die Eigenschaften der anderen Nachschlagefelder fest. Es gibt lediglich eine Besonderheit bei dem Nachschlagefeld KontaktID der Tabelle tblVerleih, das zur Auswahl eines Datensatzes der Tabelle tblKontakte dient. Normalerweise soll ein Nachschlagefeld immer den Inhalt eines festen Feldes der verknüpften Tabelle anzeigen.

    Die Tabelle tblKontakte kann aber unter Umständen nur einen Eintrag im Feld Institution oder einen Eintrag in den Feldern Nachname und Vorname enthalten.

    Das Nachschlagefeld soll – falls vorhanden – die Institution und ansonsten Nachname und Vorname des Kontaktes anzeigen. Dazu verwenden Sie die folgende Abfrage:

    SELECT KontaktID, IIf(Not IsNull
        ([Institution]),[Institution],
        [Nachname] & IIf(Not IsNull
        ([Vorname]),", " & [Vorname],"")) 
        AS Kontakt
    FROM tblKontakte;

    Die Abfrage enthält das übliche Primärindexfeld – aber statt des üblicherweise konkret ausgewählten anzuzeigenden Feldes einen IIf-Ausdruck, der das Vorhandensein eines Eintrags in das Feld Institution überprüft. Falls vorhanden, gibt der IIf-Ausdruck die Institution zurück, ansonsten einen Ausdruck der Form Nachname, Vorname.

    Hinweis

    Sparen Sie sich die Mühe, nun direkt einige Datensätze einzugeben. Sie werden im nächsten Kapitel für die Eingabe aller notwendigen Daten entsprechende Formulare erstellen. Sie sollten lediglich für die Tabelle tblGeliehenOderVerliehen zwei Datensätze entsprechend Bild 7 eingeben.

    Die Verleihverwaltung enthält insgesamt sechs Formulare, die in den folgenden Abschnitten beschrieben werden.

    Bild 7: Die Daten der Tabelle tblGeliehenOderVerliehen

    Bild 8: Das Hauptmenü der Verleihverwaltung

    Bild 9: Entwurfsansicht des Formulars frmNeuerKontakt

    Das Hauptmenü

    Als Startformular dient das Formular frmHauptmenue (siehe Bild 8). Es steuert den Aufruf der unterschiedlichen Funktionen der Datenbank. Das sind im Wesentlichen die Eingabe von Leihvorgängen und die Anzeige von Verleih- und Entleihvorgängen.

    Die beiden Schaltflächen btnListeVerliehen und btnListeGeliehen rufen das gleiche Formular namens frmListe auf. Um dennoch unterschiedliche Inhalte mit dem Formular anzuzeigen, verwendet der Formularaufruf erstens eine entsprechende Where-Bedingung und zweitens ein öffnungsargument:

    Private Sub btnListeVerliehen_Click()
        DoCmd.OpenForm "frmListe",         WhereCondition:=        "[GeliehenOderVerliehenID]=1",        OpenArgs:=1
    End Sub

    Die Where-Bedingung schränkt die Datenherkunft des aufgerufenen Formulars ein, während das öffnungsargument lediglich die Zahl übergibt, die einem der beiden Datensätze der Tabelle tblGeliehenOderVerliehen entspricht. Die Funktion des öffnungsargumentes wird in Abschnitt 3.5 genauer beschrieben.

    Das Formular zur Eingabe vonKontakten

    Das Formular frmNeuerKontakt dient der Eingabe neuer Kontakte, an die Sie etwas verleihen oder von denen Sie etwas entleihen möchten.

    Das Formular hat die Tabelle tblKontakte als Datenherkunft. Sie können die Felder der Tabelle aus der Feldliste wie in Bild 9 in den Detailbereich des Formulars ziehen.

    Anschließend erstellen Sie die beiden Schaltflächen. Geben Sie ihnen die Namen btnSpeichern und btnAbbrechen.

    Der Quellcode hinter der Schaltfläche Abbrechen schließt das Formular nach dem Verwerfen des aktuellen Datensatzes. Legen Sie die Prozedur aus Quellcode 1 für die Ereigniseigenschaft Beim Klicken der Schaltfläche btnAbbrechen an.

    Private Sub btnSpeichern_Click()
        If IsNull(Me.Institution) And IsNull(Me.Nachname) _        Then
            MsgBox "Bitte füllen Sie mindestens eines " _            & "der beiden Felder Institution oder " _            & "Nachname aus."
            Exit Sub
        End If
        RunCommand acCmdSaveRecord
        Me.Visible = False
    End Sub

    Quellcode 2

    Bild 10: Entwurfsansicht des Formulars frmNeuerGegenstand

    Hinweis

    Weitere Informationen zum Anlegen von Ereignisprozeduren finden Sie im Beitrag Anlegen von Ereignisprozeduren im vorliegenden Heft.

    Das Betätigen der Schaltfläche Speichern (s. Quellcode 2) bewirkt zunächst eine überprüfung, ob mindestens das Feld Institution oder Nachname ausgefüllt ist. Die Prozedur läuft nur weiter, wenn mindestens einer der beiden Werte vorhanden ist. Anderenfalls erscheint eine entsprechende Meldung.

    Wenn die benötigten Daten vorhanden sind, speichert die Prozedur den Datensatz und setzt die Eigenschaft Visible des Formulars auf den Wert False.

    Private Sub btnAbbrechen_Click()
        Me.Undo
        DoCmd.Close acForm, Me.Name
    End Sub

    Quellcode 1

    Der Hintergrund ist, dass dieses Formular in der Regel von einem anderen Formular aufgerufen wird, welches nach dem Speichern des Datensatzes noch auf die eingegebenen Werte des Formulars zugreifen soll.

    Das Formular zur Eingabe vonGegenständen

    ähnlich aufgebaut ist das Formular frmNeuerGegenstand (siehe Bild 10). Es besitzt als Datenherkunft die Tabelle tblGegenstaende. Die Schaltflächen Speichern und Abbrechen besitzen eine Funktionalität, die fast mit der Funktionalität der entsprechenden Schaltflächen des Formulars frmNeuerKontakt identisch ist. Daher soll deren Funktion hier nicht erneut beschrieben werden.

    Ein Unterschied ist das Vorhandensein eines Kombinationsfeldes zur Auswahl der Art des neuen Gegenstandes aus der Tabelle tblGegenstandArten. Eigentlich dienen Kombinationsfelder der Auswahl von bestimmten Werten – in manchen Fällen ist aber auch das Eingeben neuer Werte erforderlich. Damit dazu kein neues Formular geöffnet werden muss, erledigen Sie das direkt im Kombinationsfeld.

    Dazu verwenden Sie eine Prozedur, die Sie für die Ereigniseigenschaft Bei Nicht In Liste anlegen. Sie finden die Prozedur im Klassenmodul des Formulars frmGegenstaende in der Beispieldatenbank. Es dient dazu, im Falle der Eingabe eines noch nicht vorhandenen Eintrages einen neuen Datensatz anzulegen und ihn mit dem eingegebenen Wert zu füllen.

    Das Formular zur Eingabe derLeihvorgänge

    Das Formular frmLeihvorgang ist das Kernstück der Eingabe von neuen Leihvorgängen. Hier geben Sie neue Leihvorgänge ein, und von hier aus können Sie die Formulare zur Eingabe von neuen Kontakten und Gegenständen öffnen. Als Datenherkunft des Formulars dient die Tabelle tblVerleih.

    Steuerelemente des Formulars

    Im Detailbereich des Formulars benötigen Sie sechs Felder dieser Tabelle: GeliehenOderVerliehenID, KontaktID, GegenstandID, VerleihVon, VerleihBis und AnOutlook. Ordnen Sie die entsprechenden Steuerelemente im Detailbereich des Formulars wie in Bild 11 an, indem Sie die Feldliste aktivieren und die Felder per Drag & Drop an die entsprechenden Stellen ziehen.

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    Testzugang

    eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar