Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
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.
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:
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.
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.
Bild 1: Datenmodell 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 (siehe Bild 2).
Bild 2: Entwurfsansicht des Formulars frmCDDaten
Bild 3: Datensatzherkunft des Listenfeldes lstTracks
Bild 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 Bild 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 (siehe Bild 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 vonSuchkriterien
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 Bild 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.
Bild 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 derSuchergebnisse
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.
Bild 6: Entwurfsansicht der Abfrage qrySuchergebnisse
Bild 7: Entwurfsansicht des Formulars frmSuchergebnisse
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