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 5/2002.

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

CD-Verwaltung mit Access

Autor: André Minhorst, Duisburg

!

Die Verwaltung von Musik-CDs ist nicht nur für DJs und artverwandte Berufsgruppen interessant: Auch der Hobby-Musikfan dürfte hin und wieder verzweifelt nach einem bestimmten Titel oder einer bestimmten CD suchen. Eine Datenbank zur Verwaltung von CDs, Interpreten und Titeln ist zwar schnell erstellt, doch was dann? Das Einpflegen der gewünschten Informationen kann doch recht langwierig werden, wenn Sie alle Einzelheiten vom Interpreten bis zur Spieldauer von Hand eingeben müssen. Im vorliegenden Beitrag lernen Sie eine Lösung kennen, die ein Freeware-Tool verwendet, um Informationen zu vielen herkömmlichen CDs aus dem Internet einzulesen.

Das erwähnte Freeware-Tool heißt freeDB.org, im Internet zu finden unter http://www.freedb.de. Suchen Sie im Download-Bereich das ActiveX-Steuerelement uFREEDB 1.3.

Hinweis

Zum Einlesen der Daten der CD benötigen Sie einige Methoden der Bibliothek Windows Scripting Runtime. Dazu stellen Sie einen Verweis auf diese Bibliothek ein. Wie dies funktioniert, erfahren Sie im Beitrag Setzen von Verweisen auf Bibliotheken, den Sie auf der Heft-CD im PDF-Format finden. (

Grundlagen

Die Erstellung der CD-Verwaltung besteht im Wesentlichen aus vier Schritten: Zunächst erstellen Sie ein Datenmodell, das ein sinnvolles Speichern der Daten wie Albumtitel, Interpret, Songtitel usw. erlaubt. Das ist in der Regel einfach, aber sobald ein Album Titel von mehreren Interpreten enthält, wird es schwierig. Hier reicht dann beispielsweise nicht mehr der Verweis auf den Interpreten des Albums, um den richtigen Interpreten zu ermitteln.

Der zweite Schritt ist die Bereitstellung einer geeigneten Benutzeroberfläche zur Verwaltung der Daten. Dazu gehören mehrere Formulare, die folgende Aufgaben erfüllen:

  • Formular zur Suche in den vorhandenen CDs inklusive der Möglichkeit, die Detailansicht einzelner CDs aufzurufen
  • Anzeige der Detaildaten von CDs sowie manuelle Eingabe von kompletten CDs inklusive aller Daten bis hin zur Spielzeit einzelner Tracks
  • Der dritte Schritt ist das automatisierte Einlesen der Daten von CDs, deren Daten in einer speziellen Internet-Datenbank gespeichert sind. Dies nimmt dem Anwender - abhängig von der Anzahl der CDs - eine Menge Tipparbeit ab.

    Die vierte und letzte Schritt ist die Erstellung von Berichten zur Ausgabe der Albumdaten für den Ausdruck der CD-Cover - beispielsweise, um Sicherheitskopien mit den entsprechenden Informationen zu versehen.

    Hinweis

    Die Beispieldatenbanken für Access 97 und Access 2000 finden Sie auf der Heft-CD unter den Dateinamen CD-Verwaltung97.mdb und CD-Verwaltung2000.mdb. Damit die Datenbanken funktionieren, müssen Sie das ActiveX-Steuerelement uFREEDB 1.3 aus dem Internet herunterladen, installieren und ggf. in der Datenbank per Verweis referenzieren. (

    Verwalten von CD-Daten

    Wie bei fast allen Datenbanken steht und fällt der Nutzen der Anwendung mit der Konzeption des Datenmodells. Im vorliegenden Fall gibt es einige Fallstricke, die schnell zu einem unzulänglichen Datenmodell führen können und damit überflüssige Arbeit bescheren.

    Vorüberlegungen

    Die kleinste Dateneinheit, die in einem Datensatz abgebildet werden soll, ist ein Track (Track soll im Folgenden synonym für Lied, Song, Titel usw. verwendet werden). Zu einem Track gibt es Informationen wie Tracktitel, Interpret oder Spieldauer. Aus technischer Sicht ist es auch wichtig, zu welcher CD der Track gehört. Tracks sollen in einer eigenen Tabelle gespeichert werden.

    Die CD ist die übergeordnete Dateneinheit des Tracks. Zu einer CD gibt es Informationen wie Titel, Interpret usw. In vielen Fällen - beispielsweise bei Zusammenstellungen von aktuellen Hits oder von Filmmusik - gibt es aber unterschiedliche Interpreten. Dann verwenden Sie einen geeigneten zusammenfassenden Begriff wie etwa Diverse Interpreten.

    Ähnlich verhält es sich mit der Musikrichtung: Hier kommen in der Regel Sammelbegriffe wie Rock/Pop, Dancefloor, Klassik usw. zum Einsatz. Auch gibt es CDs, die mehr als eine Stilrichtung enthalten. In dem Fall verwendet man geeignete Sammelbegriffe - z. B. Soundtrack oder Sampler.

    Beide Dateneinheiten sollen in einer eigenen Tabelle gespeichert werden. Dabei beinhaltet der Track-Datensatz eine Information, zu welcher CD er gehört.

    Zusätzlich gibt es eine dritte Dateneinheit, die sich sowohl auf die CD als auch den Track beziehen kann: den Interpreten. Der Interpret lässt sich meist aus dem Interpreten des Albums ableiten, aber - wie z. B. bei Kompilationen oder Soundtracks - nicht immer.

    Interpreten können durchaus mehrere CDs herausbringen, und einzelne Titel können auf unterschiedlichen CDs vorhanden sein und das auch noch in unterschiedlichen Versionen - beispielsweise dem Radio-Mix oder der Maxi-Version mit unterschiedlichen Spielzeiten und Titeln.

    Wie Sie sehen, scheint die Entwicklung des Datenmodells nicht trivial zu sein. Hinzu kommen einige Besonderheiten bei der Art der Übermittlung von Informationen aus der Internet-CD-Datenbank.

    Die Tabelle tblCDs

    Die Tabelle tblCDs enthält die Grundinformationen zu den unterschiedlichen CDs. Dazu gehören der Titel, der Interpret und die Gesamtlaufzeit der CD. In Tabelle 1 finden Sie die Felder der Tabelle sowie deren Beschreibung.

    Feldname

    Beschreibung

    CDID

    Primärindex der Tabelle

    CDTOC

    Aus dem Inhaltsverzeichnis der CD erstellter Index

    CDGenre

    Stilrichtung der CD

    CDLength

    Gesamtspielzeit der CD

    CDName

    Titel der CD

    ArtistID

    Verknüpfungsfeld zum gleichnamigen Feld der Tabelle tblArtists

    CDNotes

    Bemerkungen

    CDTracks

    Anzahl der Titel der CD

    CDYear

    Erscheinungsjahr der CD

    MediaID

    Weiterer eindeutiger Index

    Tab. 1: Felder der Tabelle tblCDs

    Die Tabelle tblArtists

    Die Tabelle tblArtists enthält alle Interpreten. Dabei sollen - um das Datenmodell etwas einfacher zu halten - Kombinationen aus Interpreten als einzelner Interpret in einem eigenen Datensatz gespeichert werden. Die Tabelle enthält lediglich die beiden Felder ArtistID und ArtistName.

    Die Tabelle tblTracks

    Die Tabelle tblTracks enthält die einzelnen Tracks der CDs. Auch hier gibt es einen Kompromiss zwischen lehrbuchmäßiger Datenmodellierung und Zweckmäßigkeit:

    Erstere verlangt eigentlich nach einer m:n-Beziehung zwischen den Tabellen tblCDs und tblTracks, da jede CD mehrere Tracks enthält, andererseits aber ein Track auch auf mehreren CDs enthalten sein kann. Da dies aber eher seltener vorkommt und die Titel auch meist in anderen Versionen mit unterschiedlichen Spielzeiten vorliegen, soll die Tabelle tblTracks für jeden dieser Fälle einen eigenen Datensatz erhalten.

    Eine Zusammenfassung aller Felder der Tabelle tblTracks und deren Beschreibung finden Sie in Tabelle 2.

    Feldname

    Beschreibung

    TitleID

    Primärindex der Tabelle

    CDID

    Verknüpfungsfeld zum gleichnamigen Feld der Tabelle tblCDs

    TrackNr

    Nummer des Stückes auf der CD

    TrackName

    Name des Stückes

    TrackTime

    Spielzeit des Stückes

    ArtistID

    Verknüpfungsfeld zum gleichnamigen Feld der Tabelle tblArtists

    Tab. 2: Die Felder der Tabelle tblTracks

    Hinweis

    Möglicherweise wundern Sie sich über die teilweise unkonventionellen Bezeichnungen für Felder und Tabellen - z. B. beginnen fast alle Felder der Tabelle tblCDs mit CD..., was eigentlich nicht üblich ist. Die Bezeichnungen leiten sich aus dem Objektmodell des ActiveX-Steuerelements zum Einlesen der CD-Daten von der Internet-Datenbank ab, wie Sie später sehen werden. (

    Beziehungen zwischen den Tabellen

    Die Beziehungen zwischen den Tabellen konnten Sie bereits den obigen Beschreibungen entnehmen. Dennoch zeigt Abb. 1 die drei Tabellen der Datenbank sowie deren Verknüpfungen in der Übersicht. Definieren Sie für alle Beziehungen referentielle Integrität.

    Abb. 1: Datenmodell der CD-Verwaltung

    Formulare der CD-Verwaltung

    Die CD-Verwaltung benötigt zumindest ein Formular zur Eingabe, Anzeige und Bearbeitung der Daten einer CD sowie ggf. zum Blättern durch die vorhandenen CDs. Für etwas mehr Komfort dient ein Hauptformular mit unterschiedlichen Filterfunktionen zur Auswahl von CDs.

    Formular zur Eingabe von CD-Daten

    Das Formular zur Eingabe von CD-Daten soll nicht nur der Dateneingabe, sondern auch der Ansicht und Bearbeitung bestehender Daten dienen. Außerdem soll das Formular eine Funktion zum Einlesen der Daten der aktuellen CD aus dem Internet bereitstellen.

    Hinweis

    Wenn Sie das Formular direkt testen möchten, können Sie die Tabellen der Beispieldatenbank importieren. (

    Anzeige der CD-Daten

    Als Datenherkunft für das Formular dient die Tabelle tblCDs. Um alle Felder der Tabelle in den Detailbereich zu ziehen, aktivieren Sie die Feldliste, markieren dann bei gedrückter Umschalttaste erst den obersten und dann den untersten Eintrag und ziehen dann den gesamten blau markierten Block in das Formular (s. Abb. 2).

    Abb. 2: Entwurfsansicht des Formulars frmCDDaten

    Abb. 3: Datensatzherkunft des Listenfeldes lstTracks

    Abb. 4: Formularansicht des Formulars frmCDDaten

    Wandeln Sie anschließend das Textfeld ArtistID in ein Kombinationsfeld um. Wählen Sie als Datensatzherkunft des Kombinationsfeldes die Tabelle tblArtists aus. Das Feld bietet nun die IDs der Interpreten zur Auswahl an. Damit stattdessen die Namen der Interpreten angezeigt werden, setzen Sie noch den Wert der Eigenschaft Spaltenanzahl auf 2 und den Wert der Eigenschaft Spaltenbreiten auf 0cm; 3cm.

    Anzeige der Titelliste

    Neben den CD-Informationen benötigen Sie noch ein Unterformular zur Auflistung der vorhandenen Titel.

    Da das Unterformular alle Titel anzeigen soll, die sich auf die aktuell angezeigte CD beziehen, benötigen Sie eine Abfrage zum Auswählen der entsprechenden Titel. Die Abfrage enthält die Tabellen tblTracks und tblInterpreten als Datenherkunft. Als Kriterium geben Sie für das Feld CDID den folgenden Ausdruck an:

    =Forms!frmCDDaten!CDID

    Das Aussehen der Abfrage finden Sie in Abb. 3. Speichern Sie die Abfrage unter dem Namen qryTracks.

    Nachdem Sie ein neues Formular namens frmTracks angelegt haben, ziehen Sie die vier Felder TrackNr, TrackName, ArtistID und TrackTime in den Detailbereich des Formulars.

    Wandeln Sie das Textfeld ArtistID genau wie im Formular frmCDDaten in ein Kombinationsfeld um. Stellen Sie die Eigenschaft Standardansicht auf den Wert Datenblattansicht ein.

    Um das Formular als Unterformular im Formular frmCDDaten zu platzieren, speichern und schließen Sie es zunächst. Zeigen Sie das Formular frmCDDaten in der Detailansicht an und platzieren Sie das Datenbankfenster neben dem Formular. Ziehen Sie das Unterformular aus dem Register Formulare in den Detailbereich des Formulars frmCDDaten. Nachdem Sie die Größe und Position des Unterformulars nach Ihren Wünschen angepasst haben, platzieren Sie nun noch den Namen des Interpreten sowie den Albumtitel über den bisher hinzugefügten Steuerelementen (s. Abb. 4).

    Private Sub cmdErgebnisseZeigen_Click()

        Forms(Me.Name).Visible = False

        DoCmd.OpenForm "frmSuchergebnisse", _
            View:=acNormal, DataMode:=acFormReadOnly

    End Sub

    Quellcode 1

    Private Sub cmdSuche_Click()

        DoCmd.OpenForm "frmSuche", View:=acNormal

        DoCmd.Close acForm, Me.Name

    End Sub

    Quellcode 2

    So können Sie nun bereits Ihre eigenen CDs und deren Tracks eingeben.

    Formular zur Eingabe von
    Suchkriterien

    Damit Sie nicht Ihre komplette CD-Sammlung durchsuchen müssen, um einen bestimmten Titel zu finden, benötigen Sie ein Formular zur Suche nach CDs mit bestimmten Eigenschaften. Legen Sie dazu ein neues Formular an und speichern Sie es unter dem Namen frmSuche.

    Legen Sie dann vier Textfelder wie in Abb. 5 an und vergeben Sie die Namen txtCDName, txtArtistName, txtTrackName und txtTrackArtistName. Fügen Sie außerdem eine Schaltfläche namens cmdErgebnisseZeigen hinzu.

    Für die Ereigniseigenschaft Beim Klicken der Schaltfläche cmdErgebnisseAnzeigen legen Sie die Prozedur aus Quellcode 1 an.

    Die Prozedur besteht lediglich aus zwei Anweisungen. Die erste stellt die Eigenschaft Visible des Formulars auf den Wert False ein, um das Formular unsichtbar zu machen. Die zweite Anweisung öffnet das Formular frmSuchergebnisse, das die Ergebnisse entsprechend den Suchkriterien anzeigen soll.

    Abb. 5: Formularansicht des Formulars frmSuche

    Der Anwender soll das Formular frmSuche vom Formular frmCDDaten aus öffnen können. Dazu fügen Sie diesem Formular noch eine Schaltfläche namens cmdSuchen hinzu und hinterlegen für die Ereigniseigenschaft Beim Klicken die Prozedur aus Quellcode 2. Die Prozedur verwendet die Methode OpenForm der DoCmd-Anweisung, um das gewünschte Formular als Dialogformular zu öffnen.

    Das Formular zur Anzeige der
    Suchergebnisse

    Nach Eingabe der gewünschten Kriterien soll die Anwendung dem Benutzer nach einem Mausklick auf die Schaltfläche cmdErgebnisseAnzeigen das Suchergebnis anzeigen.

    Die Ergebnisliste soll sich auf die einzelnen CD-Tracks beziehen, also den Tracktitel, den Trackinterpreten, den Titel des dazugehörenden Albums sowie dessen Interpreten anzeigen. Wenn Sie sich an das Datenmodell zurückerinnern, fällt Ihnen sicher auf, dass sich nicht alle diese Informationen in einer Tabelle befinden. Daher erstellen Sie zunächst eine Abfrage namens qrySuchergebnisse, die alle benötigten Felder beinhaltet.

    Da sich die Tabelle tblArtists sowohl auf die CD-Alben als auch auf die einzelnen Tracks bezieht, müssen Sie diese Tabelle ein zweites Mal in den Entwurf der Abfrage ziehen. Außerdem entfernen Sie den Beziehungspfeil zwischen der Tabelle tblTracks und der zuerst eingefügten Kopie der Tabelle tblArtists.

    Abb. 6: Entwurfsansicht der Abfrage qrySuchergebnisse

    Abb. 7: Entwurfsansicht des Formulars frmSuchergebnisse

    Private Sub cmdZeigen_Click()

        DoCmd.OpenForm "frmCDDaten", View:=acNormal, _
            OpenArgs:=CDID

        Forms!frmcddaten.Requery

        DoCmd.Close acForm, "frmSuchergebnisse"

        DoCmd.Close acForm, "frmSuche"

    End Sub

    Quellcode 3

    Der Abb. 6 können Sie entnehmen, welche Felder aus welchen Tabellen in das Entwurfsraster zu ziehen sind. Achten Sie darauf, dass Sie der Feldbezeichnung ArtistName der zweiten Kopie der Tabelle tblArtists den Ausdruck TrackArtistName: voranstellen. Sie können so später im Formular komfortabler auf dieses Feld zugreifen.

    Dies ist noch nicht die eigentliche Datenherkunft des Formulars, da noch die Kriterien einzufügen sind. Das funktioniert per VBA jedoch leichter und ist zudem übersichtlicher.

    Legen Sie nun ein neues Formular namens frmSuchergebnisse an. Blenden Sie über den Menübefehl Ansicht ( Formularkopf/-fuß die gleichnamigen Formularbereiche ein.

    Um die Textfelder im Detailbereich nicht mühsam von Hand erstellen zu müssen, können Sie vorübergehend die soeben erstellte Abfrage als Datenherkunft des Formulars einstellen.

    Ziehen Sie die entsprechenden Felder aus dem Formular in den Detailbereich und ordnen Sie diese entsprechend an.

    Außerdem benötigen Sie noch eine Schaltfläche namens cmdZeigen, mit der Sie den gewünschten Datensatz im Formular frmCDDaten anzeigen können. Legen Sie für die Ereigniseigenschaft Beim Klicken die Prozedur aus Quellcode 3 an.

    Die wichtigste Aufgabe des Formulars ist die Anzeige des Suchergebnisses für die angegebenen Kriterien. Damit aus der Abfrage qrySuchergebnisse, die ja im Originalzustand alle vorhandenen Tracks mit den dazugehörenden Daten anzeigt, eine Abfrage wird, die nur die gewünschten Daten anzeigt, benötigen Sie einige Zeilen VBA.

    Die Prozedur öffnet das Formular frmCDDaten mit dem Wert des Feldes CDID als Öffnungsparameter. Wie das Formular frmCDDaten den Inhalt dieses Parameters auswertet, erfahren Sie später.

    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.