{"id":55000079,"date":"2002-10-01T00:00:00","date_gmt":"2021-02-10T20:15:29","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=79"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"CDVerwaltung_mit_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/","title":{"rendered":"CD-Verwaltung mit Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: Andr&eacute; Minhorst, Duisburg<\/p>\n<p><\/b>!<\/p>\n<p><b>Die Verwaltung von Musik-CDs ist nicht nur f&uuml;r DJs und artverwandte Berufsgruppen interessant: Auch der Hobby-Musikfan d&uuml;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&uuml;nschten Informationen kann doch recht langwierig werden, wenn Sie alle Einzelheiten vom Interpreten bis zur Spieldauer von Hand eingeben m&uuml;ssen. Im vorliegenden Beitrag lernen Sie eine L&ouml;sung kennen, die ein Freeware-Tool verwendet, um Informationen zu vielen herk&ouml;mmlichen CDs aus dem Internet einzulesen.<\/b><\/p>\n<p>Das erw&auml;hnte Freeware-Tool hei&szlig;t freeDB.org, im Internet zu finden unter http:\/\/www.freedb.de. Suchen Sie im Download-Bereich das ActiveX-Steuerelement uFREEDB 1.3. <\/p>\n<h3>Hinweis<\/h3>\n<p>Zum Einlesen der Daten der CD ben&ouml;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. <\/p>\n<p>Die Erstellung der CD-Verwaltung besteht im Wesentlichen aus vier Schritten: Zun&auml;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&auml;lt, wird es schwierig. Hier reicht dann beispielsweise nicht mehr der Verweis auf den Interpreten des Albums, um den richtigen Interpreten zu ermitteln.<\/p>\n<p>Der zweite Schritt ist die Bereitstellung einer geeigneten Benutzeroberfl&auml;che zur Verwaltung der Daten. Dazu geh&ouml;ren mehrere Formulare, die folgende Aufgaben erf&uuml;llen:<\/p>\n<li>Formular zur Suche in den vorhandenen CDs inklusive der M&ouml;glichkeit, die Detailansicht einzelner CDs aufzurufen<\/li>\n<li>Anzeige der Detaildaten von CDs sowie manuelle Eingabe von kompletten CDs inklusive aller Daten bis hin zur Spielzeit einzelner Tracks<\/li>\n<p>Der dritte Schritt ist das automatisierte Einlesen der Daten von CDs, deren Daten in einer speziellen Internet-Datenbank gespeichert sind. Dies nimmt dem Anwender &#8211; abh&auml;ngig von der Anzahl der CDs &#8211; eine Menge Tipparbeit ab.<\/p>\n<p>Die vierte und letzte Schritt ist die Erstellung von Berichten zur Ausgabe der Albumdaten f&uuml;r den Ausdruck der CD-Cover &#8211; beispielsweise, um Sicherheitskopien mit den entsprechenden Informationen zu versehen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Beispieldatenbanken f&uuml;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&uuml;ssen Sie das ActiveX-Steuerelement uFREEDB 1.3 aus dem Internet herunterladen, installieren und ggf. in der Datenbank per Verweis referenzieren. <\/p>\n<p>Wie bei fast allen Datenbanken steht und f&auml;llt der Nutzen der Anwendung mit der Konzeption des Datenmodells. Im vorliegenden Fall gibt es einige Fallstricke, die schnell zu einem unzul&auml;nglichen Datenmodell f&uuml;hren k&ouml;nnen und damit &uuml;berfl&uuml;ssige Arbeit bescheren.<\/p>\n<p><b>Vor&uuml;berlegungen<\/b><\/p>\n<p>Die kleinste Dateneinheit, die in einem Datensatz abgebildet werden soll, ist ein Track (Track soll im Folgenden synonym f&uuml;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&ouml;rt. Tracks sollen in einer eigenen Tabelle gespeichert werden.<\/p>\n<p>Die CD ist die &uuml;bergeordnete Dateneinheit des Tracks. Zu einer CD gibt es Informationen wie Titel, Interpret usw. In vielen F&auml;llen &#8211; beispielsweise bei Zusammenstellungen von aktuellen Hits oder von Filmmusik &#8211;  gibt es aber unterschiedliche Interpreten. Dann verwenden Sie einen geeigneten zusammenfassenden Begriff wie etwa Diverse Interpreten.<\/p>\n<p>&auml;hnlich verh&auml;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 &#8211; z. B. Soundtrack oder Sampler.<\/p>\n<p>Beide Dateneinheiten sollen in einer eigenen Tabelle gespeichert werden. Dabei beinhaltet der Track-Datensatz eine Information, zu welcher CD er geh&ouml;rt.<\/p>\n<p>Zus&auml;tzlich gibt es eine dritte Dateneinheit, die sich sowohl auf die CD als auch den Track beziehen kann: den Interpreten. Der Interpret l&auml;sst sich meist aus dem Interpreten des Albums ableiten, aber &#8211; wie z. B. bei Kompilationen oder Soundtracks &#8211;  nicht immer.<\/p>\n<p>Interpreten k&ouml;nnen durchaus mehrere CDs herausbringen, und einzelne Titel k&ouml;nnen auf unterschiedlichen CDs vorhanden sein und das auch noch in unterschiedlichen Versionen &#8211; beispielsweise dem Radio-Mix oder der Maxi-Version mit unterschiedlichen Spielzeiten und Titeln.<\/p>\n<p>Wie Sie sehen, scheint die Entwicklung des Datenmodells nicht trivial zu sein. Hinzu kommen einige Besonderheiten bei der Art der &uuml;bermittlung von Informationen aus der Internet-CD-Datenbank.<\/p>\n<p><b>Die Tabelle tblCDs<\/b><\/p>\n<p>Die Tabelle tblCDs enth&auml;lt die Grundinformationen zu den unterschiedlichen CDs. Dazu geh&ouml;ren der Titel, der Interpret und die Gesamtlaufzeit der CD. In Tabelle 1 finden Sie die Felder der Tabelle sowie deren Beschreibung.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feldname<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDID<\/p>\n<\/td>\n<td>\n<p>Prim&auml;rindex der Tabelle<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDTOC<\/p>\n<\/td>\n<td>\n<p>Aus dem Inhaltsverzeichnis der CD erstellter Index<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDGenre<\/p>\n<\/td>\n<td>\n<p>Stilrichtung der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDLength<\/p>\n<\/td>\n<td>\n<p>Gesamtspielzeit der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDName<\/p>\n<\/td>\n<td>\n<p>Titel der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>ArtistID<\/p>\n<\/td>\n<td>\n<p>Verkn&uuml;pfungsfeld zum gleichnamigen Feld der Tabelle tblArtists<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDNotes<\/p>\n<\/td>\n<td>\n<p>Bemerkungen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDTracks<\/p>\n<\/td>\n<td>\n<p>Anzahl der Titel der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDYear<\/p>\n<\/td>\n<td>\n<p>Erscheinungsjahr der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>MediaID<\/p>\n<\/td>\n<td>\n<p>Weiterer eindeutiger Index<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: Felder der Tabelle tblCDs<\/b><\/p>\n<p><b>Die Tabelle tblArtists<\/b><\/p>\n<p>Die Tabelle tblArtists enth&auml;lt alle Interpreten. Dabei sollen &#8211; um das Datenmodell etwas einfacher zu halten &#8211; Kombinationen aus Interpreten als einzelner Interpret in einem eigenen Datensatz gespeichert werden. Die Tabelle enth&auml;lt lediglich die beiden Felder ArtistID und ArtistName.<\/p>\n<p><b>Die Tabelle tblTracks<\/b><\/p>\n<p>Die Tabelle tblTracks enth&auml;lt die einzelnen Tracks der CDs. Auch hier gibt es einen Kompromiss zwischen lehrbuchm&auml;&szlig;iger Datenmodellierung und Zweckm&auml;&szlig;igkeit:<\/p>\n<p>Erstere verlangt eigentlich nach einer m:n-Beziehung zwischen den Tabellen tblCDs und tblTracks, da jede CD mehrere Tracks enth&auml;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&uuml;r jeden dieser F&auml;lle einen eigenen Datensatz erhalten.<\/p>\n<p>Eine Zusammenfassung aller Felder der Tabelle tblTracks und deren Beschreibung finden Sie in Tabelle 2.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feldname<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>TitleID<\/p>\n<\/td>\n<td>\n<p>Prim&auml;rindex der Tabelle<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>CDID<\/p>\n<\/td>\n<td>\n<p>Verkn&uuml;pfungsfeld zum gleichnamigen Feld der Tabelle tblCDs<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>TrackNr<\/p>\n<\/td>\n<td>\n<p>Nummer des St&uuml;ckes auf der CD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>TrackName<\/p>\n<\/td>\n<td>\n<p>Name des St&uuml;ckes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>TrackTime<\/p>\n<\/td>\n<td>\n<p>Spielzeit des St&uuml;ckes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>ArtistID<\/p>\n<\/td>\n<td>\n<p>Verkn&uuml;pfungsfeld zum gleichnamigen Feld der Tabelle tblArtists<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 2: Die Felder der Tabelle tblTracks<\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>M&ouml;glicherweise wundern Sie sich &uuml;ber die teilweise unkonventionellen Bezeichnungen f&uuml;r Felder und Tabellen &#8211; z. B. beginnen fast alle Felder der Tabelle tblCDs mit CD&#8230;, was eigentlich nicht &uuml;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&auml;ter sehen werden. <\/p>\n<p><b>Beziehungen zwischen den Tabellen<\/b><\/p>\n<p>Die Beziehungen zwischen den Tabellen konnten Sie bereits den obigen Beschreibungen entnehmen. Dennoch zeigt Abb. 1 die drei Tabellen der Datenbank sowie deren Verkn&uuml;pfungen in der &uuml;bersicht. Definieren Sie f&uuml;r alle Beziehungen referentielle Integrit&auml;t.<\/p>\n<p><IMG height=\"270\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic001.png\" width=\"398\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Datenmodell der CD-Verwaltung<\/span><\/b><\/p>\n<p>Die CD-Verwaltung ben&ouml;tigt zumindest ein Formular zur Eingabe, Anzeige und Bearbeitung der Daten einer CD sowie ggf. zum Bl&auml;ttern durch die vorhandenen CDs. F&uuml;r etwas mehr Komfort dient ein Hauptformular mit unterschiedlichen Filterfunktionen zur Auswahl von CDs.<\/p>\n<p><b>Formular zur Eingabe von CD-Daten<\/b><\/p>\n<p>Das Formular zur Eingabe von CD-Daten soll nicht nur der Dateneingabe, sondern auch der Ansicht und Bearbeitung bestehender Daten dienen. Au&szlig;erdem soll das Formular eine Funktion zum Einlesen der Daten der aktuellen CD aus dem Internet bereitstellen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Wenn Sie das Formular direkt testen m&ouml;chten, k&ouml;nnen Sie die Tabellen der Beispieldatenbank importieren. <\/p>\n<h3>Anzeige der CD-Daten<\/h3>\n<p>Als Datenherkunft f&uuml;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&uuml;ckter Umschalttaste erst den obersten und dann den untersten Eintrag und ziehen dann den gesamten blau markierten Block in das Formular (siehe Bild 2).<\/p>\n<p><IMG height=\"305\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Entwurfsansicht des Formulars frmCDDaten<\/span><\/b><\/p>\n<p><IMG height=\"260\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Datensatzherkunft des Listenfeldes lstTracks<\/span><\/b><\/p>\n<p><IMG height=\"227\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Formularansicht des Formulars frmCDDaten<\/span><\/b><\/p>\n<p>Wandeln Sie anschlie&szlig;end das Textfeld ArtistID in ein Kombinationsfeld um. W&auml;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.<\/p>\n<h3>Anzeige der Titelliste<\/h3>\n<p>Neben den CD-Informationen ben&ouml;tigen Sie noch ein Unterformular zur Auflistung der vorhandenen Titel.<\/p>\n<p>Da das Unterformular alle Titel anzeigen soll, die sich auf die aktuell angezeigte CD beziehen, ben&ouml;tigen Sie eine Abfrage zum Ausw&auml;hlen der entsprechenden Titel. Die Abfrage enth&auml;lt die Tabellen tblTracks und tblInterpreten als Datenherkunft. Als Kriterium geben Sie f&uuml;r das Feld CDID den folgenden Ausdruck an:<\/p>\n<pre>=Forms!frmCDDaten!CDID<\/pre>\n<p>Das Aussehen der Abfrage finden Sie in Bild 3. Speichern Sie die Abfrage unter dem Namen qryTracks.<\/p>\n<p>Nachdem Sie ein neues Formular namens frmTracks angelegt haben, ziehen Sie die vier Felder TrackNr, TrackName, ArtistID und TrackTime in den Detailbereich des Formulars.<\/p>\n<p>Wandeln Sie das Textfeld ArtistID genau wie im Formular frmCDDaten in ein Kombinationsfeld um. Stellen Sie die Eigenschaft Standardansicht auf den Wert Datenblattansicht ein.<\/p>\n<p>Um das Formular als Unterformular im Formular frmCDDaten zu platzieren, speichern und schlie&szlig;en Sie es zun&auml;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&ouml;&szlig;e und Position des Unterformulars nach Ihren W&uuml;nschen angepasst haben, platzieren Sie nun noch den Namen des Interpreten sowie den Albumtitel &uuml;ber den bisher hinzugef&uuml;gten Steuerelementen (siehe Bild 4).<\/p>\n<pre>Private Sub cmdErgebnisseZeigen_Click()\r\n    Forms(Me.Name).Visible = False\r\n    DoCmd.OpenForm \"frmSuchergebnisse\", _        View:=acNormal, DataMode:=acFormReadOnly\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Private Sub cmdSuche_Click()\r\n    DoCmd.OpenForm \"frmSuche\", View:=acNormal\r\n    DoCmd.Close acForm, Me.Name\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>So k&ouml;nnen Sie nun bereits Ihre eigenen CDs und deren Tracks eingeben.<\/p>\n<p><b>Formular zur Eingabe vonSuchkriterien<\/b><\/p>\n<p>Damit Sie nicht Ihre komplette CD-Sammlung durchsuchen m&uuml;ssen, um einen bestimmten Titel zu finden, ben&ouml;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.<\/p>\n<p>Legen Sie dann vier Textfelder wie in Bild 5 an und vergeben Sie die Namen txtCDName, txtArtistName, txtTrackName und txtTrackArtistName. F&uuml;gen Sie au&szlig;erdem eine Schaltfl&auml;che namens cmdErgebnisseZeigen hinzu.<\/p>\n<p>F&uuml;r die Ereigniseigenschaft Beim Klicken der Schaltfl&auml;che cmdErgebnisseAnzeigen legen Sie die Prozedur aus Quellcode 1 an.<\/p>\n<p>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 &ouml;ffnet das Formular frmSuchergebnisse, das die Ergebnisse entsprechend den Suchkriterien anzeigen soll.<\/p>\n<p><!--30percent--><\/p>\n<p><IMG height=\"131\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic005.png\" width=\"418\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Formularansicht des Formulars frmSuche<\/span><\/b><\/p>\n<p>Der Anwender soll das Formular frmSuche vom Formular frmCDDaten aus &ouml;ffnen k&ouml;nnen. Dazu f&uuml;gen Sie diesem Formular noch eine Schaltfl&auml;che namens cmdSuchen hinzu und hinterlegen f&uuml;r die Ereigniseigenschaft Beim Klicken die Prozedur aus Quellcode 2. Die Prozedur verwendet die Methode OpenForm der DoCmd-Anweisung, um das gew&uuml;nschte Formular als Dialogformular zu &ouml;ffnen. <\/p>\n<p><b>Das Formular zur Anzeige derSuchergebnisse<\/b><\/p>\n<p>Nach Eingabe der gew&uuml;nschten Kriterien soll die Anwendung dem Benutzer nach einem Mausklick auf die Schaltfl&auml;che cmdErgebnisseAnzeigen das Suchergebnis anzeigen.<\/p>\n<p>Die Ergebnisliste soll sich auf die einzelnen CD-Tracks beziehen, also den Tracktitel, den Trackinterpreten, den Titel des dazugeh&ouml;renden Albums sowie dessen Interpreten anzeigen. Wenn Sie sich an das Datenmodell zur&uuml;ckerinnern, f&auml;llt Ihnen sicher auf, dass sich nicht alle diese Informationen in einer Tabelle befinden. Daher erstellen Sie zun&auml;chst eine Abfrage namens qrySuchergebnisse, die alle ben&ouml;tigten Felder beinhaltet.<\/p>\n<p>Da sich die Tabelle tblArtists sowohl auf die CD-Alben als auch auf die einzelnen Tracks bezieht, m&uuml;ssen Sie diese Tabelle ein zweites Mal in den Entwurf der Abfrage ziehen. Au&szlig;erdem entfernen Sie den Beziehungspfeil zwischen der Tabelle tblTracks und der zuerst eingef&uuml;gten Kopie der Tabelle tblArtists. <\/p>\n<p><IMG height=\"360\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Entwurfsansicht der Abfrage qrySuchergebnisse<\/span><\/b><\/p>\n<p><IMG height=\"205\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Entwurfsansicht des Formulars frmSuchergebnisse<\/span><\/b><\/p>\n<pre>Private Sub cmdZeigen_Click()\r\n    DoCmd.OpenForm \"frmCDDaten\", View:=acNormal, _        OpenArgs:=CDID\r\n    Forms!frmcddaten.Requery\r\n    DoCmd.Close acForm, \"frmSuchergebnisse\"\r\n    DoCmd.Close acForm, \"frmSuche\"\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Der Abb. 6 k&ouml;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&ouml;nnen so sp&auml;ter im Formular komfortabler auf dieses Feld zugreifen.<\/p>\n<p>Dies ist noch nicht die eigentliche Datenherkunft des Formulars, da noch die Kriterien einzuf&uuml;gen sind. Das funktioniert per VBA jedoch leichter und ist zudem &uuml;bersichtlicher.<\/p>\n<p>Legen Sie nun ein neues Formular namens frmSuchergebnisse an. Blenden Sie &uuml;ber den Men&uuml;befehl Ansicht ( Formularkopf\/-fu&szlig; die gleichnamigen Formularbereiche ein. <\/p>\n<p>Um die Textfelder im Detailbereich nicht m&uuml;hsam von Hand erstellen zu m&uuml;ssen, k&ouml;nnen Sie vor&uuml;bergehend die soeben erstellte Abfrage als Datenherkunft des Formulars einstellen.<\/p>\n<p>Ziehen Sie die entsprechenden Felder aus dem Formular in den Detailbereich und ordnen Sie diese entsprechend an.<\/p>\n<p>Au&szlig;erdem ben&ouml;tigen Sie noch eine Schaltfl&auml;che namens cmdZeigen, mit der Sie den gew&uuml;nschten Datensatz im Formular frmCDDaten anzeigen k&ouml;nnen. Legen Sie f&uuml;r die Ereigniseigenschaft Beim Klicken die Prozedur aus Quellcode 3 an.<\/p>\n<p>Die wichtigste Aufgabe des Formulars ist die Anzeige des Suchergebnisses f&uuml;r die angegebenen Kriterien. Damit aus der Abfrage qrySuchergebnisse, die ja im Originalzustand alle vorhandenen Tracks mit den dazugeh&ouml;renden Daten anzeigt, eine Abfrage wird, die nur die gew&uuml;nschten Daten anzeigt, ben&ouml;tigen Sie einige Zeilen VBA.<\/p>\n<p>Die Prozedur &ouml;ffnet das Formular frmCDDaten mit dem Wert des Feldes CDID als &ouml;ffnungsparameter. Wie das Formular frmCDDaten den Inhalt dieses Parameters auswertet, erfahren Sie sp&auml;ter.<\/p>\n<h3>Zusammenstellung der Datenherkunft<\/h3>\n<p>Access soll die entsprechende Prozedur einmalig beim Laden des Formulars ausf&uuml;hren. Daher hinterlegen Sie diese f&uuml;r die Ereigniseigenschaft Beim Laden (s. Quellcode 4). Die Prozedur verbirgt zun&auml;chst das Formular frmSuche. Das ist notwendig, da ja noch die eingegebenen Kriterien ausgegeben werden sollen. Anschlie&szlig;end weist sie der String-Variablen strSQL die bereits erstellte Abfrage hinzu.<\/p>\n<pre>Private Sub Form_Load()\r\n    Dim strSQL As String\r\n    Dim strSQLBedingung As String\r\n    Forms(\"frmSuche\").Visible = False\r\n    strSQL = \"SELECT * FROM qrySuchergebnisse\"\r\n    If Not Forms!frmSuche!txtCDName = \"\" Then\r\n        strSQLBedingung = strSQLBedingung & \"CDName LIKE ''\" _            & Forms!frmSuche!txtCDName & \"''\"\r\n    End If\r\n    If Not Forms!frmSuche!txtArtistName = \"\" Then\r\n        strSQLBedingung = strSQLBedingung & \"AND ArtistName LIKE ''\" _            & Forms!frmSuche!txtArtistName & \"''\"\r\n    End If\r\n    If Not Forms!frmSuche!txtTrackName = \"\" Then\r\n        strSQLBedingung = strSQLBedingung & \"AND TrackName LIKE ''\" _            & Forms!frmSuche!txtTrackName & \"''\"\r\n    End If\r\n    If Not Forms!frmSuche!txtTrackArtistName = \"\" Then\r\n        strSQLBedingung = strSQLBedingung & \"ANDTrackArtistName LIKE ''\" _            & Forms!frmSuche!txtTrackArtistName & \"''\"\r\n    End If\r\n    If Mid(strSQLBedingung, 1, 3) = \"AND\" Then\r\n        strSQLBedingung = Mid(strSQLBedingung, 4, Len(strSQLBedingung) - 4)\r\n    End If\r\n    If Not strSQLBedingung = \"\" Then\r\n        strSQL = strSQL & \" WHERE \" & strSQLBedingung\r\n    End If\r\n    Me.RecordSource = strSQL\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p>In vier If-Abfragen &uuml;berpr&uuml;ft die Prozedur anschlie&szlig;end, ob der Benutzer f&uuml;r eines oder mehrere der vier zur Verf&uuml;gung stehenden Textfelder Kriterien eingegeben hat, und setzt f&uuml;r die String-Variable strSQLBedingung einen entsprechenden SQL-Ausdruck zusammen.<\/p>\n<p>Falls das erste Kriterium keinen Vergleichswert enth&auml;lt und dieses damit wegf&auml;llt, w&uuml;rde die Zeichenkette strSQLBedingung bei Vorhandensein mindestens eines weiteren Kriteriums mit dem Schl&uuml;sselwort AND beginnen. Damit das nicht passiert, wird das Schl&uuml;sselwort im Falle eines Falles abgeschnitten.<\/p>\n<p>In einer sechsten und letzten If-Abfrage &uuml;berpr&uuml;ft die Prozedur, ob mindestens ein Kriterium vorhanden ist und f&uuml;gt ggf. die beiden Zeichenketten strSQL und strSQLBedingung zusammen.<\/p>\n<p><IMG height=\"206\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Das Formular frmSuchergebnisse in Aktion<\/span><\/b><\/p>\n<p><IMG height=\"205\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic009.png\" width=\"345\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Einf&uuml;gen des ActiveX-Steuerelements<\/span><\/b><\/p>\n<p>Schlie&szlig;lich weist sie der Eigenschaft RecordSource (dt.: Datenherkunft) des Formulars die ermittelte Abfrage zu.<\/p>\n<p>F&uuml;gen Sie nun dem Bereich Formularfu&szlig; noch eine Schaltfl&auml;che namens cmdKriterienAendern hinzu.<\/p>\n<pre>Private Sub cmdKriterienAendern_Click()\r\n    Forms!frmSuche.Visible = True\r\n    Forms(Me.Name).Visible = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<pre>Private Sub On_Current()\r\n    If Not IsNull(Me.OpenArgs) Then\r\n        Me.RecordsetClone.FindFirst \"CDID = \" _            & Me.OpenArgs\r\n        Me.Bookmark = Me.RecordsetClone.Bookmark\r\n        DoCmd.Close acForm, \"frmSuchergebnisse\"\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<p><IMG height=\"283\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic010.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Entwurf des Formulars frmCDDaten mit dem freedb-Steuerelement <\/span><\/b><\/p>\n<p>Die Schaltfl&auml;che soll dem Benutzer die M&ouml;glichkeit geben, die Kriterien nachtr&auml;glich zu &auml;ndern &#8211; beispielsweise falls die Suche zu viele oder zu wenige Datens&auml;tze findet.<\/p>\n<p>F&uuml;r die Ereigniseigenschaft Beim Klicken dieser Schaltfl&auml;che legen Sie die Prozedur aus Quellcode 5 an.<\/p>\n<p>Wenn Sie nun noch die Eigenschaft Standardansicht auf den Wert Endlosformular stellen, k&ouml;nnte das Formular frmSuchergebnisse wie in Bild 8 aussehen.<\/p>\n<p>Damit der Kreis (oder vielmehr das Dreieck) der Formulare sich schlie&szlig;t, m&uuml;ssen Sie das Formular frmCDDaten um eine Pro-zedur f&uuml;r die Ereigniseigen-schaft Beim &ouml;ffnen er-weitern (s. Quellcode 6).<\/p>\n<p>Diese Prozedur &uuml;berpr&uuml;ft, ob die Eigenschaft OpenArgs (dt.: &ouml;ffnungsparameter) einen Wert enth&auml;lt. Falls ja, setzt sie den Filter auf die CD mit der angegebenen ID und schlie&szlig;t das Formular frmSuchergebnisse.<\/p>\n<p>Nun beginnt der interessante Teil f&uuml;r Menschen mit vielen CDs, aber wenig Lust zum Tippen: die Integration des OCX-Steuerelements. Laden Sie zun&auml;chst das Steuerelement uFREEDB 1.3 von der Internetseite http:\/\/www.freedb.com. Nach dessen Installation k&ouml;nnen Sie direkt damit arbeiten.<\/p>\n<pre>Private Sub Form_Load()\r\n    Dim objFSO As Scripting.FileSystemObject\r\n    Dim objLaufwerk As Scripting.Drive\r\n    Dim strLaufwerke As String\r\n    Set objFSO = New FileSystemObject\r\n    For Each objLaufwerk In objFSO.Drives\r\n        If objLaufwerk.DriveType = 4 Then\r\n            strLaufwerke = strLaufwerke & \";\" _                & objLaufwerk.DriveLetter & \";\" _\r\n                & objLaufwerk.DriveLetter & \":\"\r\n        End If\r\n    Next\r\n    Me.cboCDLaufwerke.RowSource = Mid(strLaufwerke, 2, _        Len(strLaufwerke) - 1)\r\n    Me.cboCDLaufwerke = Me.cboCDLaufwerke.ItemData(0)\r\nEnd Sub<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<p>S&auml;mtliche Aktionen, die Sie mit diesem Steuerelement  durchf&uuml;hren sollen, starten Sie vom Formular frmCDDaten aus. Deshalb m&uuml;ssen Sie ihm auch das OCX-Steuerelement hinzuf&uuml;gen. Dazu verwenden Sie am besten den Men&uuml;befehl Einf&uuml;gen\/ActiveX-Steuerelement&#8230; und w&auml;hlen im nun erscheinenden Dialog den gew&uuml;nschten Eintrag aus (siehe Bild 9).<\/p>\n<p>Nach der Best&auml;tigung der Auswahl durch einen Mausklick auf die Schaltfl&auml;che OK erscheint das gew&uuml;nschte Steuerelement in der Entwurfsansicht des Formulars (siehe Bild 10). Um sp&auml;ter komfortabel auf dieses Steuerelement zugreifen zu k&ouml;nnen, &auml;ndern Sie seinen Namen in ctlFreeDB.<\/p>\n<p><b>Auswahl des CD-Laufwerks<\/b><\/p>\n<p>Bevor Sie die Daten zu einer CD ermitteln k&ouml;nnen, m&uuml;ssen Sie zun&auml;chst festlegen, um welches Laufwerk es sich handelt.<\/p>\n<p>Dazu verwenden Sie ein Kombinationsfeld namens cboCDLaufwerke, dass alle verf&uuml;gbaren CD-Laufwerke anzeigt. Die Prozedur zum F&uuml;llen des Kombinationsfeldes verwendet die Bibliothek Microsoft Scripting Runtime, auf die Sie zun&auml;chst einen Verweis setzen m&uuml;ssen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Technik zum Setzen eines Verweises auf eine bestimmte Bibliothek finden Sie im Beitrag Setzen von Verweisen auf Bibliotheken, der im PDF-Format auf der Heft-CD vorliegt. <\/p>\n<p>Hinterlegen Sie die Prozedur aus Quellcode 7, f&uuml;r die Ereigniseigenschaft Beim Laden des Formulars frmCDDaten.<\/p>\n<p>Die Prozedur setzt eine Zeichenkette aus den Buchstaben aller verf&uuml;gbaren CD-Laufwerke zusammen und weist sie anschlie&szlig;end der Eigenschaft Datensatzherkunft des Kombinationsfeldes cboCDLaufwerke zu.<\/p>\n<p>Damit das Kombinationsfeld die Daten anzeigen kann, m&uuml;ssen Sie f&uuml;r dessen Eigenschaft Herkunftsart den Eintrag Wertliste ausw&auml;hlen. Au&szlig;erdem legen Sie f&uuml;r die Eigenschaften Spaltenanzahl und Spaltenbreite die Werte 2 bzw. 0cm;3cm fest.<\/p>\n<h3>Hinweis<\/h3>\n<p>Weitere Informationen zum FileSystemObject und dessen Anwendung finden Sie im Beitrag Dateien managen mit Access. <\/p>\n<p><b>Vorbereiten desFreeDB-Steuerelements<\/b><\/p>\n<p>Nachdem Sie das FreeDB-Steuerelement  bereits eingef&uuml;gt und umbenannt haben, sind nun noch einige Schritte erforderlich, bis Sie es einsetzen k&ouml;nnen.<\/p>\n<p>Zun&auml;chst einmal m&uuml;ssen Sie eine Objektvariable so deklarieren, dass sie auf die vom Steuerelement ausgel&ouml;sten Ereignisse reagieren und dessen Eigenschaften verwenden kann. Dazu legen Sie im Kopf des Klassenmoduls des Formulars frmCDDaten die folgende Zeile an:<\/p>\n<pre>Private WithEvents objFreeDB As FREEDBControl.uFREEDB<\/pre>\n<p>Diese Objektvariable m&uuml;ssen Sie nun noch in den gew&uuml;nschten Prozeduren und Funktionen auf das Steuerelement einstellen.<\/p>\n<p><b>Ermitteln des TOC-Wertes<\/b><\/p>\n<p>Jede Musik-CD besitzt einen eindeutigen Wert, der aus einigen Informationen wie den Startpositionen der einzelnen Tracks, deren Anzahl usw. ermittelt wird. <\/p>\n<p>Da der Wert eindeutig ist, verwenden die meisten Anbieter von CD-Daten im Internet diesen oder einen abgewandelten Schl&uuml;ssel als eindeutigen Schl&uuml;ssel f&uuml;r die Ermittlung der gew&uuml;nschten Daten der CD.<\/p>\n<p>Diesen Wert k&ouml;nnen Sie auch mit dem FreeDB-Steuerelement  ermitteln. Dazu k&ouml;nnen Sie die Funktion aus Quellcode 8 verwenden, die Sie ebenfalls im Klassenmodul des Formulars frmCDDaten unterbringen.<\/p>\n<pre>Function TOCErmitteln(strLaufwerk As String)\r\n    Set objFreeDB = Me.ctlfreedb.Object\r\n    TOCErmitteln = objFreeDB.GetMediaTOC(strLaufwerk)\r\nEnd Function<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<pre>Function CDEinlesen(strTOC As String)\r\n    CDEinlesen = 1\r\n    Set objFreeDB = Me.ctlfreedb.Object\r\n    With objFreeDB\r\n        .EmailAddress = \"minhorst@dotzilla.de\"\r\n        .AppName = \"HaufeCDKatalog\"\r\n        .AppVersion = \"1.0\"\r\n        .AllowSubmission = False\r\n        .UseFirstMatch = True\r\n        If .LookupMediaByToc(strTOC) = MATCH_NONE Then\r\n            CDEinlesen = 0\r\n            Exit Function\r\n        End If\r\n        Dim db As Database\r\n        Dim AktuelleArtistID, AnzahlTracks, ArtistID, _            CDID, i As Integer\r\n        Dim ArtistName, TrackName, sql As String\r\n        Set db = CurrentDb\r\n        ArtistID = ArtistSuchen(.GetArtistName)\r\n        If ArtistID = 0 Then\r\n            db.Execute \"INSERT INTO \" _                & \"tblArtists(ArtistName) VALUES (''\" _\r\n                & .GetArtistName & \"'')\"\r\n        End If\r\n        ArtistID = ArtistSuchen(.GetArtistName)\r\n        sql = \"INSERT INTO tblCDs(CDTOC, CDGenre, \" _            & \"CDLength, CDName, CDNotes, \" _\r\n            & \"CDTracks, CDYear, MediaID, ArtistID) \" _            & \"VALUES (''\" & strTOC & \"'',''\" _\r\n            & .GetAlbumGenre & \"'',''\" _            & (.GetAlbumLength \\ 60) * 100 _\r\n            + .GetAlbumLength Mod 60 & \"'',\"\"\" _            & HV(.GetAlbumName) & \"\"\",\"\"\" _            & HV(.GetAlbumNotes) & \"\"\",''\" _\r\n            & .GetAlbumTracks & \"'',''\" & .GetAlbumYear _            & \"'',''\" & .GetMediaID & \"'',\" & ArtistID _            & \")\"\r\n        db.Execute sql<\/pre>\n<p><b>Quellcode 9 (Fortsetzung n&auml;chste Seite)<\/b><\/p>\n<p>Die Funktion verwendet die Methode GetMediaTOC des FreeDB-Steuerelements zum Auslesen der gew&uuml;nschten Information.<\/p>\n<p>Dazu ist noch keine Verbindung mit dem Internet erforderlich, da der Schl&uuml;ssel ausschlie&szlig;lich aus auf der CD befindlichen Informationen berechnet wird.<\/p>\n<p><b>Ermitteln der CD-Daten &uuml;ber das Internet<\/b><\/p>\n<p>Nun wird es allm&auml;hlich spannend. Mit dem TOC im Gep&auml;ck greifen Sie n&auml;mlich jetzt &uuml;ber das Internet auf die CD-Daten zu. Der Zugriff auf die FreeDB-Datenbank ist &#8211; wie der Name schon sagt &#8211; kostenlos.  Einzige Bedingung f&uuml;r die Benutzung der Datenbank ist die Angabe Ihrer   E-Mail-Adresse und einiger weiterer Informationen.<\/p>\n<pre>        CDID = Nz(DLookup(\"CDID\", \"tblCDs\", _            \"CDTOC = ''\" & strTOC & \"''\"), 0)\r\n        For i = 1 To .GetAlbumTracks\r\n            TrackName = HV(.GetTrackName(i))\r\n            If InStr(1, TrackName, \"\/\") &lt;&gt; 0 Then\r\n                ArtistName = Trim(Mid(TrackName, 1, _                    InStr(1, TrackName, \"\/\") - 1))\r\n                ArtistID = ArtistSuchen(ArtistName)\r\n                TrackName = Trim(Mid(TrackName, _                    InStr(1, TrackName, \"\/\") + 1, _\r\n                    Len(TrackName)))\r\n                If ArtistID = 0 Then\r\n                    db.Execute \"INSERT INTO \" _                        & \"tblArtists(ArtistName) \" _\r\n                        & \"VALUES(\"\"\" & ArtistName _                        & \"\"\")\"\r\n                    ArtistID = ArtistSuchen(ArtistName)\r\n                End If\r\n            End If\r\n            db.Execute \"INSERT INTO tblTracks(CDID, \" _                & \" TrackNr, TrackName, TrackTime, \" _\r\n                & \"ArtistID) VALUES (\" & CDID & \",\" _                & i & \",\"\"\" & TrackName & \"\"\",''\" _\r\n                & (.GetTrackTime(i) \\ 60) * 100 + _                .GetTrackTime(i) Mod 60 & \"'',\" _\r\n                & ArtistID & \")\"\r\n        Next i\r\n    End With\r\nEnd Function<\/pre>\n<p><b>Quellcode 9 (Fortsetzung)<\/b><\/p>\n<pre>Function ArtistSuchen(Artist As String)\r\n    ArtistSuchen = Nz(DLookup(\"ArtistID\", _        \"tblArtists\", \"ArtistName = ''\" _\r\n        & Artist & \"''\"), 0)\r\nEnd Function<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<p>Dies alles passiert in der Funktion CDEinlesen, deren einziger Parameter der TOC-Wert ist. Die Funktion legt zun&auml;chst die E-Mail-Adresse, den Applikationsnamen, die Version usw. fest. Diese Informationen werden beim Aufruf der Methode LookupMediaByTOC an die Internetdatenbank geschickt.<\/p>\n<h3>Aufbau einer Internetverbindung<\/h3>\n<p>An dieser Stelle werden Sie automatisch mit dem Internet verbunden &#8211; es sei denn, Sie unterbinden dies anderweitig oder m&uuml;ssen sich erst &uuml;ber das DF&uuml;-Netzwerk in das Internet einw&auml;hlen. Mit der Anweisung &uuml;berpr&uuml;ft die Prozedur, ob eine CD mit der angegebenen TOC in der Datenbank vorhanden ist. Ist dies nicht der Fall, wird der R&uuml;ckgabewert der Funktion CDEinlesen gleich 0 gesetzt und die Funktion verlassen.<\/p>\n<p>Anderenfalls f&auml;hrt die Prozedur mit dem Einlesen der Informationen zu der gefundenen CD fort und schreibt diese in die Tabellen der Datenbank.<\/p>\n<p>&uuml;ber die Methode GetArtistName ermittelt die Prozedur den Namen des Interpreten des Albums.<\/p>\n<h3>Neuer Artist<\/h3>\n<p>Die Funktion ArtistSuchen (Quellcode 10) &uuml;berpr&uuml;ft anschlie&szlig;end, ob der gefundene Interpret bereits in der Tabelle tblArtists vorhanden ist. Falls nicht, f&uuml;gt die folgende Anweisung der Tabelle tblArtists einen neuen Eintrag mit dem gefundenen Interpreten hinzu.<\/p>\n<p>Die ArtistID des neu angelegten Datensatzes wird auch in der SQL-Aktionsabfrage ben&ouml;tigt, die zum Anf&uuml;gen des Datensatzes f&uuml;r die neue CD an die Tabelle tblCDs dient.<\/p>\n<p>Die einzuf&uuml;genden Felder werden mit den Methoden GetAlbumGenre, GetAlbumLength, GetAlbumName, GetAlbumNotes, GetAlbumTracks, GetAlbumYear, GetMediaID des FreeDB-Objekts ermittelt und dynamisch in die SQL-Anweisung integriert.<\/p>\n<h3>Trackinformationen einlesen<\/h3>\n<p><IMG height=\"555\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic011.png\" width=\"478\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Vorschau auf den Ausdruck der CD-Cover<\/span><\/b><\/p>\n<p>Nach dem Anf&uuml;gen des neuen CD-Datensatzes sind die einzelnen Tracks an der Reihe. Damit beim Anf&uuml;gen der Datens&auml;tze f&uuml;r die einzelnen Titel direkt die CDID mitgespeichert werden kann, muss diese zun&auml;chst ermittelt werden.<\/p>\n<p>Anschlie&szlig;end ermitteln die Anweisungen innerhalb einer Schleife die Informationen zu den Titeln und speichern sie in der Tabelle tblTracks. Die Anzahl der Durchl&auml;ufe der Schleife wird durch das Ergebnis der Methode GetAlbumTracks bestimmt. Bei den Titeln einiger CDs ist noch ein wenig Fummelarbeit zu erledigen. CDs mit Titeln unterschiedlicher Interpreten wie z. B. Soundtracks, Sampler usw. beinhalten n&auml;mlich (wie die im Rahmen dieses Beitrags getesteten CDs ergaben) durch einen Slash (\/) getrennt den Titel des St&uuml;cks sowie den Namen seines Interpreten.<\/p>\n<p>Mit einigen Zeichenkettenfunktionen werden die Titelinformationen &#8211; soweit sie einen Slash enthalten &#8211; in Interpret und Titel aufgeteilt.<\/p>\n<p>In dem Fall, dass der Interpret im Titelnamen mitgef&uuml;hrt wird, &uuml;berpr&uuml;ft die Prozedur ebenfalls, ob der Interpret bereits in der Tabelle tblArtists vorhanden ist und f&uuml;gt ihn ggf. ein.<\/p>\n<p>Schlie&szlig;lich speichert eine weitere Anf&uuml;geabfrage die aus den Methoden GetTrackName und GetTrackTime gewonnenen Informationen in der Tabelle tblTracks.<\/p>\n<p>Unter Umst&auml;nden ist es sinnvoll, Sicherheitskopien von Musik-CDs anzufertigen. Daf&uuml;r kann es sehr hilfreich sein, wenn man die in der CD-Verwaltung gespeicherten Daten direkt in Form von je einem Cover f&uuml;r die Vorder- und die R&uuml;ckseite der CD-H&uuml;lle ausdrucken kann. Dazu ist nat&uuml;rlich die Anwendung eines Berichtes pr&auml;destiniert, wie Bild 11 zeigt.<\/p>\n<p><b>Vor&uuml;berlegungen<\/b><\/p>\n<p>Der Aufdruck f&uuml;r die Vorder- und die R&uuml;ckseite soll im vorliegenden Fall gleich sein und jeweils die wichtigsten CD- und Titelinformationen enthalten.<\/p>\n<p>Jeder ausgedruckte Bericht soll die Daten zu je einer CD enthalten. Die Daten stammen einerseits aus der Tabelle tblCDs (inklusive der Verkn&uuml;pfung auf die Tabelle tblArtists, um den Namen des Interpreten zu ermitteln) sowie aus der Tabelle tblTracks (ebenfalls mit der Tabelle tblArtists).<\/p>\n<p>Da jedes Blatt eine CD repr&auml;sentieren soll, geh&ouml;ren die Informationen zur CD selbst schon einmal in den Detailbereich des Berichtes. Berichtskopf und -fu&szlig; k&ouml;nnen Sie verwenden, wenn Sie jedem Cover gleich bleibende Informationen hinzuf&uuml;gen m&ouml;chten, wie z. B. den Namen des Besitzers. <\/p>\n<p><IMG height=\"152\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic012.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Entwurfsansicht des Berichtes zur Anzeige der Tracks<\/span><\/b><\/p>\n<p><IMG height=\"478\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic013.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Seitenansicht des Berichts repTracks<\/span><\/b><\/p>\n<p>Die Trackinformationen bringen Sie in einem Unterbericht unter, der jeweils alle Tracks zur aktuell angezeigten CD ausgibt.<\/p>\n<p><b>Unterbericht zur Ausgabe derTitelinformationen<\/b><\/p>\n<p>Erstellen Sie zun&auml;chst eine Abfrage als Datenherkunft f&uuml;r den Unterbericht. Die Abfrage enth&auml;lt die Tabellen tblTracks und tblArtists. Ziehen Sie aus der Tabelle tblTracks die Felder TrackNr, TrackName, TrackTime, CDID sowie aus der Tabelle tblArtists das Feld Artist in das Entwurfsraster der Abfrage. Speichern Sie die Abfrage unter dem Namen qryTracksMitArtist.<\/p>\n<p>Erstellen Sie anschlie&szlig;end einen Unterbericht und speichern Sie ihn unter dem Namen repTracks. W&auml;hlen Sie die soeben erstellte Abfrage als Datenherkunft aus. Legen Sie dann die Bezeichnungs- und Textfelder wie in Bild 12 an.<\/p>\n<p>In der Seitenansicht sollte der Bericht nun eine Liste aller Tracks anzeigen (siehe Bild 13).<\/p>\n<p><b>Bericht zur Anzeige derCD-Informationen<\/b><\/p>\n<p>Erstellen Sie nun einen weiteren Bericht, der die beiden Cover f&uuml;r Vorder- und R&uuml;ckseite anzeigt. Dazu ziehen Sie zun&auml;chst zwei Rechteck-Steuerelemente in die Detailansicht, die als Rahmen f&uuml;r die Cover dienen. Die Ma&szlig;e betragen 12 x 12 cm f&uuml;r die Vorderseite und 14,9 x 11,7 cm f&uuml;r die R&uuml;ckseite.<\/p>\n<p>Als Datenherkunft dient wiederum eine Abfrage. Die Abfrage beinhaltet die Tabellen tblCDs und tblArtists. Ziehen Sie die Felder, die Sie auf dem Cover verwenden m&ouml;chten, in das Entwurfsraster der Abfrage &#8211; je nach Vorliebe m&ouml;chten Sie vielleicht alle, vielleicht aber auch nur wenige Felder wie z. B. den CD-Titel und den Interpreten auf dem Cover anzeigen.<\/p>\n<p>Auf jeden Fall ben&ouml;tigen Sie das Feld CDID, da Sie die Tracks im Unterbericht sonst nicht nach der gew&uuml;nschten CD filtern k&ouml;nnen. Speichern Sie die Abfrage unter dem Namen qryCDsMitInterpret.<\/p>\n<p>Auch hier stellen Sie den Wert der Eigenschaft Datenherkunft auf den Namen der entsprechenden Abfrage ein.<\/p>\n<p>Legen Sie im oberen Bereich des Detailbereichs ein Textfeld an, in dem Sie beispielsweise den CD-Titel und den Interpreten anzeigen.<\/p>\n<p><IMG height=\"396\" src=\"..\/fileadmin\/_temp_\/{00681B5F-125B-42F8-8B0A-3AA73581A8FD}\/pic014.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Entwurfsansicht des CD-Frontcovers<\/span><\/b><\/p>\n<pre>Private Sub cmdCoverDrucken_Click()\r\n    DoCmd.OpenReport \"repCDCover\", acViewPreview, , _        \"CDID = \" & Me.CDID\r\nEnd Sub<\/pre>\n<p><b>Quellcode 11<\/b><\/p>\n<p>Darunter legen Sie ein Unterbericht-Steuerelement mit der gew&uuml;nschten Gr&ouml;&szlig;e an und geben f&uuml;r die Eigenschaft Herkunftsobjekt den Ausdruck Bericht.repTracks an.<\/p>\n<p>Damit der Unterbericht nur diejenigen Tracks anzeigt, die zu der im Hauptbericht angezeigten CD geh&ouml;ren, m&uuml;ssen Sie noch die Eigenschaften Verkn&uuml;pfen von und Verkn&uuml;pfen nach auf den Wert CDID einstellen.<\/p>\n<p>Bild 14 zeigt ein Beispiel f&uuml;r das Aussehen des Frontcovers in der Entwurfsansicht.<\/p>\n<p>Die Vorgehensweise f&uuml;r die R&uuml;ckseite des Covers ist mit der f&uuml;r das Frontcover identisch. Nat&uuml;rlich sind Ihren gestalterischen F&auml;higkeiten hier keine Grenzen gesetzt.<\/p>\n<p><b>Anzeigen desBerichts<\/b><\/p>\n<p>Um den Bericht komfortabel anzeigen zu k&ouml;nnen, f&uuml;gen Sie dem Formular frmCDDaten noch eine Schaltfl&auml;che namens cmdCoverDrucken mit einer entsprechenden Beschriftung hinzu. F&uuml;r die Ereigniseigenschaft Beim Klicken hinterlegen Sie die Prozedur aus Quellcode 11.<\/p>\n<p>Die DoCmd.OpenReport-Anweisung &ouml;ffnet den Bericht und &uuml;bergibt dabei den Wert CDID der aktuell angezeigten CD.<\/p>\n<p>Die CD-Verwaltung bietet noch einige Erweiterungsm&ouml;glichkeiten. So k&ouml;nnten Sie z. B. die Cover Ihrer CDs einscannen und mit den CD-Daten speichern.<\/p>\n<p>Oder Sie legen noch einige weitere Schaltfl&auml;chen auf dem Hauptformular der CD-Verwaltung an, mit denen Sie direkt an Ort und Stelle die gew&uuml;nschten Tracks abspielen k&ouml;nnen.<\/p>\n<p>Sehr n&uuml;tzlich k&ouml;nnte auch eine Erweiterung um die Verwaltung von MP3-Files sein.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>CD-Verwaltung00.mdb<\/p>\n<p>CD-Verwaltung97.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/4DF3E8EA-196B-474F-B77B-F1AC820BC4CD\/aiu_79.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Verwaltung von Musik-CDs ist nicht nur f&uuml;r DJs und artverwandte Berufsgruppen interessant.: Auch der Hobby-Musikfan d&uuml;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&uuml;nschten Informationen kann doch recht langwierig werden, wenn Sie alle Einzelheiten vom Interpreten bis zur Spieldauer von Hand eingeben m&uuml;ssen. Im vorliegenden Beitrag lernen Sie eine L&ouml;sung kennen, die ein Freeware-Tool verwendet, um Informationen zu vielen herk&ouml;mmlichen CDs aus dem Internet einzulesen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662002,66052002,44000026,44000027],"tags":[],"class_list":["post-55000079","post","type-post","status-publish","format-standard","hentry","category-662002","category-66052002","category-Interaktiv","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>CD-Verwaltung mit Access - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CD-Verwaltung mit Access\" \/>\n<meta property=\"og:description\" content=\"Die Verwaltung von Musik-CDs ist nicht nur f&uuml;r DJs und artverwandte Berufsgruppen interessant.: Auch der Hobby-Musikfan d&uuml;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&uuml;nschten Informationen kann doch recht langwierig werden, wenn Sie alle Einzelheiten vom Interpreten bis zur Spieldauer von Hand eingeben m&uuml;ssen. Im vorliegenden Beitrag lernen Sie eine L&ouml;sung kennen, die ein Freeware-Tool verwendet, um Informationen zu vielen herk&ouml;mmlichen CDs aus dem Internet einzulesen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T20:15:29+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"26\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"CD-Verwaltung mit Access\",\"datePublished\":\"2021-02-10T20:15:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/\"},\"wordCount\":4622,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/61b2e907a261409b90ca8d681b70a0cf\",\"articleSection\":[\"2002\",\"5\\\/2002\",\"Interaktiv\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/\",\"name\":\"CD-Verwaltung mit Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/61b2e907a261409b90ca8d681b70a0cf\",\"datePublished\":\"2021-02-10T20:15:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/61b2e907a261409b90ca8d681b70a0cf\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/61b2e907a261409b90ca8d681b70a0cf\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/CDVerwaltung_mit_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CD-Verwaltung mit Access\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CD-Verwaltung mit Access - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/","og_locale":"de_DE","og_type":"article","og_title":"CD-Verwaltung mit Access","og_description":"Die Verwaltung von Musik-CDs ist nicht nur f&uuml;r DJs und artverwandte Berufsgruppen interessant.: Auch der Hobby-Musikfan d&uuml;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&uuml;nschten Informationen kann doch recht langwierig werden, wenn Sie alle Einzelheiten vom Interpreten bis zur Spieldauer von Hand eingeben m&uuml;ssen. Im vorliegenden Beitrag lernen Sie eine L&ouml;sung kennen, die ein Freeware-Tool verwendet, um Informationen zu vielen herk&ouml;mmlichen CDs aus dem Internet einzulesen.","og_url":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T20:15:29+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"26\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"CD-Verwaltung mit Access","datePublished":"2021-02-10T20:15:29+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/"},"wordCount":4622,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf","articleSection":["2002","5\/2002","Interaktiv","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/","url":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/","name":"CD-Verwaltung mit Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf","datePublished":"2021-02-10T20:15:29+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/61b2e907a261409b90ca8d681b70a0cf"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/CDVerwaltung_mit_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"CD-Verwaltung mit Access"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000079"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000079\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}