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 3/2007.

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

Zusammenfassung

Lesen Sie Ihre Kontostände und -umsätze per VBA und DDBAC in eine eigene Datenbank ein.

Techniken

VBA

Voraussetzungen

Access 2000 und höher, DDABC-Runtime (auf Heft-CD)

Beispieldateien

HBCI.mdb, DDBAC Software Development Kit Version 4.1.6.0

Shortlink

468

Onlinebanking mit HBCI

André Minhorst, Duisburg

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 (s. Abb. 1).

pic001.tif

Abb. 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 (s. Abb. 2).

pic002.tif

Abb. 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 (s. Abb. 3).

pic003.tif

Abb. 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

    
Set objBanking = New BACBanking

    
For Each objCustomer In objBanking.Customers

        
Debug.Print "*** Customer ***"

         Debug.Print "Benutzer-ID: " & objCustomer.UserID

         Debug.Print "Bankleitzahl: " & objCustomer.BankCode

         Debug.Print "Ländercode: " & objCustomer.CountryCode

        
For Each objAccountSegment In objCustomer.AccountData.Segments

            
With objAccountSegment

                 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")

            
End With

        
Next objAccountSegment

    
Next objCustomer


End Sub

Ein BACCustomer-Objekt entspricht einem der Einträge in der Maske aus Abb. 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.

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.