Kontoumsätze abfragen und überweisungen tätigen kann dank Onlinebanking und des passenden Internetangebots mittlerweile jeder. Aber können Sie auch ganz einfach die vorgefundenen Informationen in Ihre Datenbank importieren Noch nicht, aber bald: Dieser Beitrag zeigt, wie Sie Kontostände und -umsätze direkt in Ihre Datenbank einlesen. Alles, was Sie brauchen, ist eine passende Onlinebanking-Komponente.
Auf Ihre Bankdaten können Sie online auf verschiedene Arten zugreifen: Manuell über das Internetangebot Ihrer Bank, mit spezieller Banking-Software wie MS Money, Quicken, Star Money und Co., per Webfernsteuerung, wie es im Beitrag “Webseiten fernsteuern” (Shortlink 467) beschrieben ist, oder mit Ihrem Lieblingstool: Microsoft Access.
Es ist allerdings nicht verwunderlich, dass Access von Haus aus keine Möglichkeit bietet, auf die Webschnittstelle einer Bank zuzugreifen.
Dazu bedarf es der Hilfe von Experten, denn die für den Zugriff verwendete Technik ist dank der vielfältigen Sicherheitsmaßnahmen und der komplizierten Notation von Abfragen an den Bankserver nicht gerade trivial.
Die Firma DataDesign AG stellt jedoch eine Bibliothek bereit, die Ihnen den Zugriff auf die gewünschten Daten wesentlich erleichtert. Der ausschlaggebende Punkt ist hierbei die COM-Schnittstelle, die alle notwendigen Objekte für den Zugriff auf ein Konto bereitstellt. Dieser Beitrag stellt das Objektmodell dieser Bibliothek vor und zeigt anhand einiger Beispiele, wie Sie dieses für den Zugriff via HBCI einsetzen können.
DDBAC: Software und Lizenzbedingungen |
Die DataDesign AG bietet auf ihrer Webseite verschiedene Versionen der DDBAC-Komponenten zur Verfügung. Die DDBAC Runtime Version 4.1.6.0 ist komplett kostenlos, das DDBAC Software Development Kit 4.1.6.0 ist an Lizenzbedingungen geknüpft, die Sie beim Download einsehen können. Der wesentliche Punkt lautet: Kostenpflichtig wird der Einsatz einer oder mehrerer DDBAC-Komponenten erst, wenn Sie diese in Projekte integrieren und als Paket an Dritte verkaufen. DataDesign hat aber zugesichert, dass Sie das auf der Heft-CD befindliche oder von http://www.datadesign.de herunterzuladende SDK für die Entwicklung eigener Anwendungen einsetzen und diese im Eigengebrauch kostenlos nutzen dürfen. |
Voraussetzungen
Ohne einen Online-Zugang zu Ihrem Konto läuft natürlich gar nichts, und außerdem müssen die HBCI-Funktionen für Sie freigeschaltet sein. Wenn Sie per Onlinebanking via Internet auf Ihr Konto zugreifen, sollten Sie die HBCI-Funktionen darüber freischalten können. Gegebenenfalls ist dazu ein kurzer Schriftwechsel oder ein Telefonat mit der Bank notwendig. Außerdem brauchen Sie natürlich die DataDesign Banking Application Components (DDBAC), die Sie unter [1] herunterladen können. Deren Installation bringt nicht nur die notwendigen Komponenten auf die Festplatte, sondern fügt auch der Systemsteuerung einen Eintrag hinzu. Mit diesem sorgen Sie für die Grundlage des Zugriffs, indem Sie einen oder mehrere Kontakte anlegen und diese später verwalten (siehe Bild 1).

Bild 1: über die Systemsteuerung verwalten Sie Onlinebanking-Kontakte.
Ein Kontakt ist dabei keinesfalls mit einem Konto gleichzusetzen, auch wenn die Daten, die Sie hierzu von Ihrer Bank erhalten, möglicherweise darauf schließen lassen. über einen Kontakt können Sie auf eines oder mehrere eigene Konten (beispielsweise Girokonto und Sparkonto), unter Umständen aber auch auf fremde Konten zugreifen – etwa, wenn Sie als Buchhalter eines Unternehmens auf dessen Konten Zugriff haben. Diese Feinheiten werden weiter unten in der Beschreibung des Objektmodells deutlicher.
Bis dahin müssen Sie erstmal einen Kontakt anlegen, indem Sie den Administrator für Homebanking Kontakte öffnen und mit einem Klick auf die Schaltfläche Neu den passenden Assistenten starten (siehe Bild 2).

Bild 2: Start des Assistenten zum Erstellen eines Kontaktes
Für die folgenden Schritte benötigen Sie die Unterlagen, die Ihnen die Bank Ihres Vertrauens geliefert hat – zum Beispiel den Ini-Brief, die Ini-Diskette oder die HBCI-Chipkarte. Sie geben dort die Art des Zugriffs auf den Server (etwa per Pin/Tan oder FinTS), die Bankleitzahl, Ihre Benutzerkennung (aus den Unterlagen – stimmt gegebenenfalls mit Ihrer Kontonummer überein) und weitere Daten ein. Beim Anlegen des neuen Homebanking-Kontakts erfolgt schließlich die Synchronisierung mit den passenden Daten auf dem Bankserver. Wichtig ist, dass Sie sich – wenn Sie mit einer Schlüsseldatei arbeiten – die für den Zugang mit dem auf einem passenden Medium gesicherten Schlüssel gültige Passphrase merken. Diese benötigen Sie später für die erneute Anmeldung am Onlinebanking-Server. Der Vorteil ist, dass Sie damit die lästige Eingabe von TANs umgehen können.
Nach dem Anlegen des Kontakts können Sie diesen von Anwendungen, die auf die DDBAC-Schnittstelle zugreifen, referenzieren und für das Anmelden an den Banking-Server verwenden.
Datenbank HBCI-fähig machen
Nun können Sie endlich mit dem Bau einer Access-Anwendung für den Zugriff auf Ihre Bankkonten beginnen. Als Erstes brauchen Sie einen Verweis auf die Bibliothek DataDesign DDBAC HBCI Banking Application Components (siehe Bild 3).

Bild 3: Erstellen eines Verweises auf die DDBAC-Bibliothek
Anschließend geht es los – am besten mit dem Untersuchen der Daten, die Sie wie soeben beschrieben mit dem Assistenten vom Onlinebanking-Server auf Ihren Arbeitsrechner gezogen haben.
Dabei handelt es sich nämlich um Basisdaten wie die einzelnen Konten, die Sie unter den von Ihnen angegebenen Benutzerdaten verwalten können. Im Falle des Autors und des im Beispiel verwendeten Zugangs beschränkt sich dies auf zwei Konten – ein Giro- sowie ein Sparkonto. Trotzdem Grund genug, sich einmal anzusehen, wie man auf diese Daten zugreift.
Die Routine aus Listing 1 zeigt, wie das funktioniert. Wie für die meisten folgenden Beispiele benötigen Sie ein Objekt des Typs BACBanking, das gleichzeitig das Wurzelelement des Objektmodells ist. Dieses deklarieren Sie wie folgt in einem Standardmodul:
Dim objBanking As BACBanking
Sie benötigen noch ein weiteres Element, mit dem Sie den aktuellen Onlinebanking-Benutzer referenzieren:
Dim objCustomer As BACCustomer
Listing 1: Ausgabe einiger der beim Synchronisieren mit dem Banking-Server auf dem lokalen Rechner gespeicherten Informationen |
Public Sub LokaleDaten() Dim objAccountSegment As BACSegment
Debug.Print "Benutzer-ID: " & objCustomer.UserID Debug.Print "Bankleitzahl: " & objCustomer.BankCode Debug.Print "Ländercode: " & objCustomer.CountryCode
Debug.Print "*** Kontoverbindung ***" Debug.Print "Kontonummer: " & .Item("Kontoverbindung1", "Kontonummer1") Debug.Print "Merkmal: " & .Item("Kontoverbindung1", "Unterkontomerkmal1") Debug.Print "Länderkennzeichen: " & .Item("Kontoverbindung1", "Laenderkennzeichen1") Debug.Print "Kreditinstitutcode: " & .Item("Kontoverbindung1", "Kreditinstitutcode1") Debug.Print "Kontowährung: " & .Item("Kontowaehrung1") Debug.Print "Besitzername: " & .Item("NameEins1") Debug.Print "Produktbezeichnung: " & .Item("Kontoproduktbezeichnung1")
|
Ein BACCustomer-Objekt entspricht einem der Einträge in der Maske aus Bild 2. Dort können Sie – wenn Sie Konten bei verschiedenen Banken besitzen – auch mehrere HBCI-Benutzer einrichten.
Für diesen Fall bietet sich auch die Verwendung der Customers-Auflistung des BACBanking-Objekts an, das Methoden etwa zum Suchen von BACCustomer-Objekten nach dem Benutzernamen oder der Bankleitzahl erlaubt. Im vorliegenden Fall soll jedoch ein einfaches Durchlaufen der vorhandenen BACCustomer-Objekte genügen. Dies geschieht innerhalb einer For Each-Schleife über die Customers-Auflistung. Die Routine LokaleDaten gibt zunächst zu jedem BACCustomer-Objekt die Benutzerkennung (UserID), die Bankleitzahl (BankCode) und den CountryCode aus.