Autor: Martin Hoffmann, Düsseldorf
Zur Organisation von Büchern und Zeitschriften in Unternehmen bietet sich eine Literaturverwaltung an, in der die Literatur nicht nur erfasst, sondern auch weiterverarbeitet werden kann. Dazu zählt beispielsweise das automatische Erstellen von Literatur- und Signaturlisten. Der folgende Beitrag beschreibt eine Datenbank, die besondere Zusatzfunktionen enthält, mit denen Sie den Nutzwert für die Anwender wesentlich erhöhen.
Die Literaturverwaltung, die in den folgenden Abschnitten beschrieben wird, soll Ihnen zeigen, wie Sie generell eine Literaturverwaltung aufbauen können. Dabei lernen Sie, wie Sie einfache und komplexe Suchfunktionen in die Datenbank integrieren, wie Sie die Eingabe und Anzeige von Rezensionen gestalten und die Literaturdaten in Form eines Literaturanhangs in Word ausgeben. Außerdem erfahren Sie, wie Sie benutzerabhängige Literaturlisten speichern.
Die folgende Abbildung (siehe Bild 1) zeigt die Hauptformulare der fertigen Literaturverwaltung. Das linke Formular dient der Erfassung der Literatur und das rechte der Verwaltung der Listen.
Bild 1: Die Hauptfenster des Literatur-Managers
Im Folgenden werden die wichtigsten Tabellen der Datenbank und deren Beziehungen kurz erläutert. Neben diesen Tabellen finden Sie in der Datenbank Detailtabellen wie tblDokumenttypen, tblVerlage oder tblBenutzer, deren Felder und Inhalte selbsterklärend sind.
Die Literatur-Tabelle
Die Tabelle tblLiteratur stellt das zentrale Element der Datenstruktur dar. In ihr werden alle Bücher und Zeitschriften mit den wichtigsten Feldern wie Titel, Verlag, Erscheinungsjahr und Dokumenttyp abgelegt. Ferner lassen sich Schlüsselwörter für die spätere Suche definieren. über das Feld IstInternerBestand kennzeichnen Sie ein Buch, das in der eigenen Bibliothek zu finden ist oder das Sie selbst angeschafft haben. Wenn Sie das Kennzeichen weglassen, handelt es sich um ein Buch an einem externen Standort, z. B. in einer Universitätsbibliothek. Bild 2 zeigt alle Felder der Tabelle tblLiteratur.
Autoren
Jedem Werk können mehrere Autoren mit verschiedenen Funktionen (z. B. Autor, Co-Autor etc.) zugewiesen werden. Alle Autoren werden zentral in der Tabelle tblAutoren mit Vor- und Nachnamen einmal gespeichert. Die Verknüpfung zu den Werken erfolgt über die Tabelle tblLiteraturAutoren. In dieser Tabelle wird auch die Funktion festgelegt.
Bild 2: Die Datenfelder der Tabelle tblLiteratur
Standorte und Signaturen
Die Datenbank ist so ausgelegt, dass jedes Werk an mehreren Standorten verfügbar sein kann. Wenn ein Werk zum Beispiel gerade in der hausinternen Bibliothek vergriffen ist, können Sie in der Datenbank die weiteren möglichen Standorte und die Signatur des Werks am jeweiligen Standort einsehen.
Bild 3: Das Datenmodell für Standorte und Signaturen
Die Standorte werden in der Tabelle tblStandorte mit den Feldern Standortname, Beschreibung und Ort gepflegt. In diese Tabelle können Sie auch Standorte eingeben, die sich in Ihrem Unternehmen befinden. Solche Standorte können beispielsweise Abteilungen sein. Die unternehmensinternen Standorte werden über das Feld IstInternerStandort gekennzeichnet.
Die Verknüpfung der Standorte mit den Werken erfolgt mit einer n:m-Beziehung über die Tabelle tblSignaturen (siehe Bild 3). In diese Tabelle geben Sie für jeden Standort eines Werks die Signatur ein.
über die Tabelle tblVerbleiborte können Sie für jedes Werk eine Verteilerliste anlegen. In dieser können für unterschiedliche Zeiträume die Standorte eines Werks abgelegt werden. So könnte eine Verteilerliste für die nächste Ergänzungslieferung oder eine PC-Zeitschrift wie in Tab. 1 aussehen.
Bild 4: Die Tabellenstruktur für Rezensionen
Bild 5: n:m-Beziehung für Verweise zwischen Werken
Standort |
Von-Datum |
Bis-Datum |
EDV Abteilung |
1.4.2002 |
5.4.2002 |
Vertrieb |
8.4.2002 |
12.4.2002 |
Marketing |
15.4.2002 |
19.4.2002 |
Bibliothek |
20.4.2002 |
Tab. 1: Beispiel für Verbleiborte einer PC-Zeitschrift
Rezensionen
Die Literaturverwaltung sieht vor, dass jeder Benutzer der Datenbank eine Wertung zu einem Werk abgeben kann. Dazu werden in der Tabelle tblRezensionen die LiteraturID, die BenutzerID, das Anlagedatum mit Uhrzeit und der Rezensionstext gespeichert. Außerdem kann eine Wertung zwischen 1 (sehr schlecht) und 5 (sehr gut) im Feld WertungID eingegeben werden. Die Wertung wird in diesem Beispiel in einer eigenen Tabelle tblWertungen gespeichert, da nicht die Zahl selbst im Formular erscheinen soll, sondern eine Grafik, welche die Bewertung symbolisiert. Die Grafik wird im OLE-Feld WertungBild abgelegt (siehe Bild 4) und so mit der Wertungszahl verknüpft. Näheres zur Vorgehensweise und zur Formularprogrammierung finden Sie in Abschnitt 5.
Referenzen
Das Verlinken von Werken innerhalb der Datenbank oder das Zusammenfassen von Werken zu Gruppen oder Bänden (z. B. Zeitschriften-Jahrgänge) realisieren Sie über eine n:m-Beziehung der Tabelle tblLiteratur auf sich selbst. Als Zwischentabelle dient die Tabelle tblVerweise, in die die beiden Fremdschlüssel LiteraturID und VerweisLiteraturID sowie eine Bemerkung zu der Verknüpfung eingegeben werden können.
Der Aufbau der Beziehungen ist in Bild 5 dargestellt.
Eine n:m-Beziehung auf sich selbst legen Sie im Beziehungen-Fenster wie folgt an:
Bild 6: Aufbau der Literaturlisten-Tabellen
Bild 7: Das Formular frmLiteratur in der Entwurfsansicht
Literaturlisten
Eine besondere Funktion stellen die benutzerabhängigen Literaturlisten dar. Mit diesen kann jeder Benutzer beliebig viele Liste unterschiedlichster Gruppierung zusammenstellen und verwalten.
So könnte eine Liste interessante Artikel in PC-Zeitschriften enthalten und eine andere die Literatur für eine Veröffentlichung.
Die Listen werden in der Tabelle tblLiteraturlisten mit einem Namen und der BenutzerID gespeichert.
Zu jeder Liste lassen sich dann Positionen hinzufügen, die die Tabelle tblLiteraturlistenPositionen aufnimmt.
Das Feld Sortierung ist für spätere Zwecke vorgesehen, um die Reihenfolge der Listenelemente manuell zu verändern.
In dieser Version der Datenbank werden die Listenelemente zunächst alphabetisch nach Titeln sortiert. Bild 6 zeigt die Beziehungen zwischen den Tabellen.
Nachdem Sie nun die Tabellenstruktur der Datenbank kennen, können Sie mit dem Entwurf des Literaturformulars zur Erfassung der Werke beginnen.
Gehen Sie dazu wie folgt vor:
Die wichtigsten Felder hätten Sie damit in das Formular aufgenommen.
Bild 8: Die Literatur-Schnellsuche
Private Sub btnSuchen_Click() Dim rstLiteratursuche As Recordset If Nz(txtTitelsuche, "") <> "" Then Set rstLiteratursuche = Me.RecordsetClone With rstLiteratursuche .FindFirst "Titel like ""*" & _ Me!txtTitelsuche & "*""" If Not .NoMatch Then Me.Bookmark = .Bookmark End If End With End If End Sub
Quellcode 1
Hinweis
Den Aufbau des Unterformulars für Rezensionen finden Sie weiter unten im Abschnitt 5.
Unterformulare anlegen
Für die Registerseiten 4, 5 und 6 legen Sie zunächst jeweils ein Formular auf Basis der Tabellen tblSignaturen, tblVerweise und tblVerbleiborte an. Stellen Sie dann die Formulareigenschaft der drei Formulare wie in Tab. 2 ein. Fügen Sie anschließend die Unterformulare auf den entsprechenden Registerseiten ein.
Titelzeile einfügen
Das Literaturformular wäre damit fast fertig gestellt. Damit Sie beim Umschalten zwischen den Registerseiten den aktuellen Titel immer im Blick haben, fügen Sie oberhalb des Registers noch ein Textfeld mit dem Namen txtTitel ein.
Eigenschaft |
Wert |
Standardansicht |
Datenblatt |
Bildlaufleisten |
Nur vertikal |
Datensatzmarkierer |
Nein |
Navigationsschaltflächen |
Nein |
Tab. 2: Formulareigenschaften für die Unterformulare
Damit das Formular immer den Titel des aktuell angezeigten Werkes anzeigt, fügen Sie beim Formular-Ereignis Beim Anzeigen die folgenden Code-Zeilen ein:
If Me.NewRecord Then Me!txtTitel = "(Neuer Titel)" Else Me!txtTitel = Me!Titel End If
Die Prozedur prüft, ob es sich um einen neuen Datensatz handelt, und zeigt in diesem Fall den Text (Neuer Titel) an. Wenn ein bestehender Datensatz vorliegt, wird der Inhalt des Feldes Titel im Textfeld angezeigt.
In die Datenbank werden zwei Suchfunktionen integriert. Zum einen eine Schnellsuche, über die direkt im Formular nach einem bestimmten Titel gesucht werden kann. Zum anderen eine Detailsuche, bei der die unterschiedlichsten Felder wie Autor, Verlag oder Erscheinungsjahr als Suchkriterien eingegeben werden können.
Schnellsuche
Die Schnellsuche soll im Formularkopf erfolgen und wird mithilfe des Textfeldes txtTitelsuche und zwei Befehlsschaltflächen btnSuchen und btnWeitersuchen realisiert (siehe Bild 8).