Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.
Adressen aus dem Onlineshop importieren
Wer einen Onlineshop verwendet, verwaltet in der Regel auch die Kunden- und Bestelldaten auf dem Internetserver, auf dem sich die Shopsoftware befindet. Dennoch gibt es verschiedene Gründe, sich diese Daten auch auf dem Desktop verfügbar zu machen – und zwar nicht nur über das jeweilige Shop-Backend. Die Daten wollen schließlich weiterverwendet werden, beispielsweise für die Vorbereitung der Lieferung, den Rechnungsversand, die Prüfung des Rechnungseingangs et cetera. Leider liefert das Shopsystem die Daten meist nicht in der gewünschten Struktur. Schauen wir uns also anhand des Shopsystems Shopware an, wie wir uns die Daten gefügig machen.
Shopware ist eines der moderneren Shopsysteme. Ein Beispiel für einen Shop auf Basis dieses Systems ist etwa der Shop des André Minhorst Verlags, in dem Sie möglicherweise auch das Abonnement zu diesem Magazin bestellt haben (shop.minhorst.com). Da ich also selbst mit diesem System arbeite, ist es naheliegend, dieses Shopsystem als Beispiel für diesen Artikel heranzuziehen.
Zugriff verschaffen
Die optimale Lösung für den Zugriff auf die Daten des Shops erfolgt per ODBC. Wenn die Datenbanksoftware auf dem Server dafür freigeschaltet ist, können Sie die Tabellen des Shopsystems direkt in eine Datenbank auf dem lokalen Rechner einbinden.
Sie arbeiten dann mit den verfügbaren Tabellen, als ob diese sich direkt in der Datenbank befinden – mit dem Unterschied, dass der Zugriff vielleicht an der einen oder anderen Stelle etwas langsamer erfolgt.
Für den Zugriff sollte Ihr Provider die entsprechenden Einstellungen vornehmen und folgende Daten liefern können:
- Adresse des Servers (zum Beispiel eine IP oder Domain)
- Port (zum Beispiel 3306)
- Name der Datenbank
- Benutzername
- Kennwort
Wenn Ihnen diese Informationen vorliegen, können Sie die Verbindung über den entsprechenden Assistenten von Access herstellen – wie im Beitrag RDBMS-Tabellen manuell verknüpfen (www.access-im-unternehmen.de/973). Oder Sie erledigen dies wie in den Beiträgen RDBMS-Tools: Verbindungen verwalten (www.access-im-unternehmen.de/976) und RDBMS-Tools: Tabellen verknüpfen (www.access-im-unternehmen.de/977) beschrieben mit zwei komfortablen Formularen.
Diese können Sie auch in Form eines Add-Ins einbinden – siehe RDBMS-Tools als Add-In (www.access-im-unternehmen.de/978). In diesem Beitrag nutzen wir in diesem Fall die letztere Variante.
Wenn Sie das Add-In aus dem genannten Beitrag installiert haben, fügen Sie mit dem Start des Add-Ins automatisch die für den Zugriff nötigen Tabellen tblVerbindungszeichenfolgen und tblTreiber an. Sie brauchen dann nur noch zunächst das Add-In RDBMS-Tools: Verbindungen verwalten aus dem Ribbon-Menü Datenbanktools|Add-Ins|Add-Ins auszuwählen. Dort geben Sie wie in Bild 1 die Verbindungsdaten ein und schließen den Dialog wieder.
Bild 1: Einstellen der VerbindungseigenschaftenDanach rufen Sie aus dem gleichen Ribbon-Menü den Eintrag RDBMS-Tools: Tabellen verknüpfen auf. Hier wählen Sie nun die soeben erstellte Verbindungszeichenfolge aus dem oberen Kombinationsfeld aus und klicken dann auf Aktualisieren. Das Formular zeigt nun alle Tabellen der gewählten Datenbank an.
Nach kurzem Durchsehen der Tabellen scheint klar zu sein, dass sich die Kundendaten in Tabellen befinden, die das Schlüsselwort User enthalten – zumindest gibt es keine Tabellen etwa namens Customer oder dergleichen. Also filtern wir das Listenfeld durch Eingabe des Wortes User in das Textfelder Filter und erhalten so die gesuchten Tabellen (s. Bild 2).
Bild 2: Herstellen der VerknüpfungenWir markieren die Tabellen, die für uns interessant sein könnten, und erstellen durch einen Mausklick auf die Schaltfläche Tabellen verknüpfen entsprechende Verknüpfungen.
Wir wollen die Kunden inklusive Liefer- und Rechnungsanschrift in die Zieldatenbank importieren. Dazu schauen wir uns die Tabellen zunächst genauer im Beziehungsfenster an. Von den importierten Tabellen bleiben drei übrig, von denen eine die Grunddaten der Kunden enthält, eine die Rechnungsdaten und eine die Lieferdaten.
Um uns dies später beim Erstellen von Abfragen sparen zu können, fügen wir den Tabellen zwei Verknüpfungen hinzu (s. Bild 3).
Bild 3: Für den Kunden-Import interessante TabellenAls Nächstes müssen wir herausfinden, wie die Daten in den drei Tabellen gespeichert werden. Im Shop des André Minhorst Verlags beispielsweise gibt man zunächst eine nicht näher spezifizierte Adresse ein (s. Bild 4). Darunter findet sich dann die Möglichkeit, anzugeben, dass die Lieferadresse von der Rechnungsadresse abweicht. Klickt man diese Option an, ist klar, dass die zuerst eingegebene Adresse der Rechnungsadresse entspricht, denn es erscheint nun ein eigener Bereich zur Eingabe der Lieferadresse. Gibt man zwei verschiedene Adressen für die Lieferung und die Rechnung an, ist der Fall also offensichtlich klar. Aber wo landen die Daten, wenn der Benutzer nur einen Satz Adressdaten einträgt – in der Tabelle s_user_billingaddress oder s_user_shippingaddress?
Bild 4: Eingabe der Kundendaten im ShopZielfelder für Adressdaten prüfen
Oder trägt die Shopsoftware die Adresse einfach gleich für beide Adressen ein? Wir werden nicht um eine Prüfung dieses Sachverhalts herumkommen. Also erstellen wir eine neue Abfrage, welche die drei Tabellen s_user, s_user_shippingaddress und s_user_billingaddress aufnimmt. Die soeben im Beziehungen-Fenster hinzugefügten Beziehungen werden praktischerweise direkt in den Abfrageentwurf übernommen. Dann ziehen wir die benötigten Felder aus den drei Tabellen in das Entwurfsraster. Aus der Tabelle s_user entnehmen wir dabei nur die Felder id und email, aus den beiden übrigen Tabellen die üblichen Adressfelder (s. Bild 5).
Bild 5: Abfrage mit Liefer- und RechnungsfeldernEin Wechsel in die Datenblattansicht liefert dann interessanterweise nicht den soeben frisch im Shop angelegten Datensatz. Warum das nicht? Es kann eigentlich nur einen Grund geben: Da wir die Verknüpfungen mit in die Abfrage übernommen haben, kann diese nur Datensätze liefern, für die auch in allen beteiligten Tabellen Daten vorliegen.
Dies bedeutet also, dass mindestens eine der Tabellen keine Daten enthält und die eingebene Adresse wohl entweder nur in der Tabelle s_user_shippingaddress oder s_user_billingaddress gelandet ist. Um dies zu prüfen, passen wir die Abfrage nochmals an, damit diese immer alle Datensätze anzeigt – unabhängig davon, ob alle Tabellen Daten enthalten. Klicken Sie dazu doppelt auf den ersten der beiden Verknüpfungspfeile und stellen Sie die nun erscheinenden Verknüpfungseigenschaften so ein, dass alle Datensätze der Tabelle s_user angezeigt werden und nur die passenden Datensätze aus der jeweils verknüpften Tabelle (s. Bild 6).
Bild 6: Einstellen der VerknüpfungseigenschaftenDies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.