Onlinebanking mit HBCI, Teil 2

Eine eigene Anwendung mit Zugriff auf das Konto oder die Konten des Benutzers – das könnte in vielen Fällen eine enorme Erleichterung sein. So könnten Sie beispielsweise regelmäßig die auf dem Bankserver gespeicherten Vorgänge herunterladen und in einer passenden Tabelle speichern. Auf diese Weise haben Sie alle Daten digital verfügbar anstatt nur diejenigen der letzten 90 Tage, wie es üblicherweise der Fall ist. Die Suche nach bestimmten Informationen und der Ausdruck individueller Auswertungen ist dann ein Kinderspiel, wie der vorliegende Beitrag zeigt.

Im ersten Teil dieser Beitragsreihe (Shortlink 468) haben Sie erfahren, wie Sie den Kontostand eines Kontos ermitteln und die Kontoumsätze einlesen. Dies sollen Sie nun ausnutzen und die gewonnenen Daten in die Tabelle einer Datenbank eintragen.

Nebenher sollen diese Daten natürlich auch in ansprechender Form präsentiert werden und auch eine neue Technik lernen Sie in diesem Beitrag kennen – nämlich das Absetzen einer überweisung mit Access und der DDBAC-Bibliothek.

Die Beispieldatenbank empfängt den Benutzer mit dem Formular aus Abb. 1. Es zeigt im Wesentlichen die Vorgänge eines bestimmten Zeitraums für das aktuell im Kombinationsfeld ausgewählte Konto an.

pic001.tif

Abb. 1: Buchungsvorgänge im Formular

Zusammenfassend noch einmal die Voraussetzungen für den Online-Zugriff auf Ihre Konten:

  • Die DDBAC-Software muss installiert sein. Sie finden diese Software entweder auf der Heft-CD oder in der jeweils aktuellsten Fassung unter [1].
  • Sie müssen über ein für Onlinebanking eingerichtetes Konto verfügen, was in der Regel der Fall sein dürfte, wenn Sie via Internet auf das Konto zugreifen. Die DDBAC-Bibliothek erlaubt verschiedene Zugriffsarten – etwa HBCI/FinTS mit Schlüsseldatei oder Chipkarte sowie HBCI+ oder FinTS mit PIN und TAN. Im Rahmen der Erstellung dieses Beitrags werden die Schlüssel- sowie die PIN/TAN-Variante getestet und für gut befunden.
  • Sie haben das Konto für den Zugriff via DDBAC eingerichtet. Dies erledigen Sie nach der Installation der Software unter dem Punkt Homebanking Kontakte der Systemsteuerung. Fertig eingerichtete „Kontakte“ sehen etwa wie in Abb. 2 aus.
  • Achten Sie unter neueren Access-Versionen (ab Access 2003) vorsichtshalber auch darauf, dass die Ausführung des VBA-Codes der Anwendungen nicht durch entsprechende Sicherheitseinstellungen unterbunden wird (das nur, weil es dem Autor beim Vorführen passiert ist …).
pic002.tif

Abb. 2: Festlegen der Homebanking-Kontakte

Dann kann es losgehen: Mit einem Klick auf die Schaltfläche Vorgänge einlesen starten Sie den Zugriff auf den Bankserver. Je nach dem verwendeten Zugriffsschutz erscheint eine passende Abfrage: Im Falle der Schlüsseldatei müssen Sie die Passphrase eingeben (s. Abb. 3), bei Verwendung von PIN/TAN geben Sie den PIN in den nun erscheinenden Dialog ein (s. Abb. 4).

pic003.tif

Abb. 3: Passphrase bei Verwendung eines Schlüssels eingeben

pic004.tif

Abb. 4: Das Abfragen von Konten mit PIN/TAN verlangt nach der PIN-Nummer.

Danach stellt die Anwendung die Verbindung her und speichert alle verfügbaren Vorgänge in einer entsprechenden Tabelle. „Alle verfügbaren“ bezieht sich in der Regel auf die Vorgänge der letzten 90 Tage, zumindest lieferte keines der beim Testen angesprochenen Kreditinstitute ältere Daten.

Falls bis dahin noch keine Vorgänge gespeichert wurden, legt die Anwendung den vor dem ersten eingelesenen Vorgang bestehenden Kontostand als initialen Kontostand fest. Dies ist notwendig, damit der später vorgestellte Bericht jeweils den aktuellen Kontostand anzeigen kann. Auch diese Information liefern die Bankserver zwar, jedoch kann es auch interessant sein, vom Kontostand des ersten gespeicherten Vorgangs aus dessen Entwicklung nachzuverfolgen.

Sind die Daten einmal vom Bankserver heruntergeladen, kann man ganz nach Bedarf alle paar Tage die aktuelleren Buchungen herunterziehen. Die Anwendung prüft jeweils, ob ein Vorgang bereits gespeichert wurde, und holt dies gegebenenfalls nach. Dabei werden immer die Vorgänge der letzten 90 Tage untersucht, Sie sollten also zumindest vor Ablauf dieser Zeitspanne die vorhandenen Daten in der Datenbank speichern, damit zwischendrin keine Daten fehlen. Sollte dies doch einmal passieren, haben Sie sicher gedruckte Exemplare des Kontoauszugs zur Verfügung, um zumindest die wichtigsten Daten in die Tabelle zu übernehmen und damit eine lückenlose Darstellung des Kontostandes über diesen Zeitraum zu gewährleisten.

Wollen Sie nur die Einträge eines bestimmten Zeitraums anzeigen lassen, können Sie diesen über die Schaltfläche Zeitraum ändern und den daraufhin erscheinenden Dialog anpassen. Dieser Dialog und die darin verwendete Technik wird ausführlich im Beitrag Zeiträume komfortabel auswählen beschrieben. Die Schaltfläche Alle anzeigen hebt den so festgelegten Filter wieder auf.

Zum Ausdrucken der Informationen oder einfach für einen besseren überblick liefert die Anwendung einen Bericht mit, der die wichtigsten Vorgangsdaten ausgibt. Diesen öffnen Sie mit einem Klick auf die Schaltfläche Bericht anzeigen (s. Abb. 5).

pic005.tif

Abb. 5: Ausgabe der Umsätze und des jeweils aktuellen Kontostandes per Access-Bericht

Der Bericht liefert genau die den im Formular festgelegten Einstellungen entsprechenden Vorgänge – also nur für das angegebene Konto und den passenden Zeitraum. Neben dem Buchungszeitpunkt enthält eine jede Zeile des Berichts Informationen zu Empfänger/Verwendungszweck (diese beiden Felder wurden der übersichtlichkeit halber zusammengefasst), zum Betrag sowie zum aktuellen Kontostand. Zusätzlich ist die Ausgabe nach Monaten gruppiert. Für jeden Monat gibt der Bericht außerdem die Differenz zwischen Anfangs- und Endbestand aus.

Eine weitere Funktion, die in dieser Anwendung nicht fehlen darf, dient zum Ausführen einer überweisung. Um dies zu veranlassen, klicken Sie auf die Schaltfläche Neue überweisung und füllen die passenden Felder im nun erscheinenden Formular frmUeberweisung aus (s. Abb. 6).

pic006.tif

Abb. 6: Eingabe von Umsatzdetails per Formular

Dabei hilft das Formular tatkräftig mit: Mit dem oberen Kombinationsfeld wählen Sie das Konto des Auftraggebers aus, sofern dies nicht das im aufrufenden Formular ausgewählte ist. Im Bereich Empfänger tragen Sie den Namen, die BLZ und Kontonummer des Adressaten ein, im unteren Bereich schließlich noch den zu überweisenden Betrag sowie den Verwendungszweck.

Nach dem Betätigen der Schaltfläche überweisen müssen Sie je nach Zugriffsschutz entweder nur auf die Antwort warten (Schlüsseldatei) oder eine passende TAN eingeben (s. Abb. 7).

pic007.tif

Abb. 7: Bei Bedarf fragt die HBCI-Schnittstelle TANs ab.

Sollte kein Fehler auftreten, liefert das Formular das überweisungsdatum sowie die Antwort des Bankservers als Inhalt zweier Textfelder zurück.

Komfortabel ist, dass der aktuell verwendete Empfänger in der Datenbank gespeichert wird und bei folgenden überweisungen über das passende Kombinationsfeld ausgewählt werden kann.

Technischer Hintergrund

Nachfolgend stellt Ihnen dieser Beitrag einige technische Finessen vor, die für den Betrieb dieser Anwendung wichtig sind.

Vorweg folgender Hinweis: Die Anwendung enthält nur die allernotwendigsten Fehlerbehandlungen. Wenn Sie also nicht vorschriftsgemäß damit umgehen, könnte es hier und da krachen.

Als Erstes betrachten Sie die Technik, die für das Speichern der Vorgänge in der Tabelle tblVorgaenge zum Einsatz kommt. Diese Tabelle enthält Felder für alle Informationen, die DDBAC überhaupt aus einem Buchungssatz vom Bankserver herausholen kann – sicher ist sicher: Die paar Daten mehr machen den Braten nicht fett, sind aber für Vorgänge, die länger als 90 Tage zurückliegen und noch nicht gespeichert wurden, verloren.

Neben diesen Feldern enthält die Tabelle ein Primärschlüsselfeld namens VorgangID und zwei Felder zum Speichern der BLZ und der Kontonummer des betroffenen Kontos (die Anwendung kann mehrere Konten verwalten!). Weiter vorne haben Sie erfahren, dass die Anwendung zwar jeweils alle Vorgänge der letzten 90 Tage einliest, aber nur diejenigen in der Datenbank speichert, die noch nicht vorhanden sind.

Dazu brauchen Sie ein passendes Kriterium, das die vom Bankserver gelieferten Daten leider nicht bieten: Es gibt unter den vielen Eigenschaften eines Vorgangs kein einziges eindeutiges Merkmal.

Da man davon ausgehen kann, dass üblicherweise niemals zwei überweisungen auf das gleiche Konto erfolgen, bei denen Datum und Zweck übereinstimmen, legen Sie für die passenden Felder einen zusammengesetzten, eindeutigen Index fest (s. Abb. 8). In der Routine, die für das Einlesen der Vorgänge zuständig ist, löst das Einfügen eines – nach diesen Kriterien – schon vorhandenen Vorgangs einen Fehler aus, der mit einer passenden Fehlerbehandlung unschädlich gemacht wird.

pic008.tif

Abb. 8: Die Felder der Tabelle tblVorgaenge sind mit einem zusammengesetzten, eindeutigen Schlüssel versehen.

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar