Offline-Banking mit Access (und Quicken)

Autor: Manfred Hoffbauer, Düsseldorf

Die routinemäßigen Bankgeschäfte bequem und preiswert von zu Hause aus zu führen, erfreut sich immer größerer Beliebtheit. Kein Wunder also, dass praktisch jedes nennenswerte Bankunternehmen seinen Kunden einen zuverlässigen Online-Zugang für das Homebanking zur Verfügung stellt. Ein weit verbreitetes und sehr leistungsfähiges Programm für das Homebanking ist Quicken. Mit ihm ist auch der unbedarfte Anwender in der Lage, seine Bankgeschäfte per PC zu führen. Quicken, das sich seit einiger Zeit in den Händen der Haufe-Tochter Lexware befindet, hat allerdings für Access-Anwender eine entscheidende Schwachstelle: Es bietet keine Schnittstelle zu Access.

Abhilfe schafft das in diesem Beitrag beschriebene Tool. Wenn Sie über dieses VBA-Programm verfügen, benötigen Sie zum Import Ihrer Quicken-Daten in Access nur noch zwei Schritte:

  • Starten Sie Quicken und exportieren Sie die Daten in eine QIF-Datei (Quicken Interchange Format).
  • Starten Sie Access und importieren Sie die Daten aus diesem Beitrag mittels des Programms.
  • Der folgende Beitrag beschreibt die Schritte, die Sie mit Quicken ausführen müssen, ebenso wie die Funktionsweise des Access-Programms.

    Quicken verwendet zum Datenaustausch das so genannte Quicken Interchange Format (kurz: QIF). Es handelt sich hierbei um ein nicht standardisiertes Datenformat, das Sie sich zwar mit einem Texteditor ansehen, aber in kaum ein anderes Programm importieren können. Um Daten mit Quicken zu exportieren, gehen Sie wie folgt vor:

  • Starten Sie Quicken.
  • Wählen Sie den Menübefehl Datei ( Datei-Operationen ( QIF-Datei-Export.
  • Bestimmen Sie das Laufwerk, den Pfad und den Dateinamen für die Exportdatei.
  • Wählen Sie das zu exportierende Konto aus.
  • Geben Sie den Datumsbereich ein.
  • Kreuzen Sie die Optionen Konten, Kontenliste, Kategorienliste und Gemerkte Buchungen an.
  • Klicken Sie auf die Schaltfläche OK.
  • Abb. 1: Exportoptionen von Quicken

    Hinweis

    Die Abbildungen in diesem Beitrag wurden mit Quicken 6 angefertigt. Einige Details in den Abbildungen können von anderen Programmversionen abweichen.

    Das Programm Quicken exportiert die Daten des ausgewählten Kontos und der angekreuzten Referenzdateien in eine Textdatei mit der Erweiterung QIF. Es handelt sich um eine Textdatei, die Sie auch mit dem Windows-Editor öffnen können.

    Abb. 2: QIF-Datei im Windows-Editor

    Access verfügt leider über keinen Importfilter für QIF-Dateien. Aufgrund des ungewöhnlichen Formats der QIF-Dateien eignet sich auch kein anderer Importfilter. Deshalb wird ein VBA-Programm für den Import benötigt. Die erste Aufgabe für das Programm besteht darin, die Textdatei in eine Access-Tabelle einzulesen. Dies erfolgt bei Access üblicherweise durch das öffnen der Textdatei per Open-Anweisung:

    Open "c:\\Quicken\\SSK.TXT" For Binary As #1

    Diese Anweisung öffnet die Textdatei zum binären Lesen. Dazu folgender Hintergrund: Wenn Sie eine QIF-Datei mit Open…For Input öffnen, können Sie die Datei nur per Input-Anweisung zeilenweise lesen. Diese Anweisung liest eine Textzeile bis zum Auftreten eines Absatzendezeichens, wozu leider auch das Komma zählt. Beim zeilenweisen Lesen mit Input liest Access die Zeile T-63,36 in zwei Zeilen ein. Die erste Zeile besteht aus T-63 und die zweite aus 36.

    Da Access keine Optionen anbietet, um die Interpretationsschwierigkeiten beim Lesen von QIF-Dateien zu umgehen, ist das binäre öffnen der Textdatei und die Programmierung einer eigenen Routine zum Einlesen einer Zeile erforderlich:

    Quellcode 1

    Das Lesen aus der mit Open … Binary geöffneten Textdatei erfolgt über die Get-Anweisung. Diese liest in Abhängigkeit vom Datentyp der angegebenen Variablen eines oder mehrere Zeichen. Mit der Definition der Variablen Zeichen als Zeichenkette mit der festen Länge 1 (Dim Zeichen As String * 1) ist die Anzahl der eingelesenen Zeichen auf 1 fixiert.

    Das zeichenweise Lesen erfolgt in einer kopfgesteuerten Schleife, die erst beim Auftreten des Dateiendes oder eines so genannten Line-Feed-Zeichens beendet wird. Die mit Quicken generierten Textdateien orientieren sich zumindest in dieser Beziehung an einem Standard. Jede Zeile endet mit einem unsichtbaren Carriage-Return- und einem Line-Feed-Zeichen. Das Carriage-Return-Zeichen hat den ASCII-Code 13 und das Line-Feed-Zeichen den ASCII-Code 10. Beide zusammen werden von Quicken, dem Windows-Editor und praktisch jedem anderen Programm als Absatzende interpretiert.

    Im Rumpf der While-Schleife befindet sich lediglich eine If-Abfrage, mit der das Carriage-Return-Zeichen überlesen wird. Alle anderen Zeichen werden dem Rückgabewert der Funktion, also der gelesenen Zeile, hinzugefügt. Falls gerade die gleiche Zeile wie in obigem Beispiel verarbeitet wird, gibt der Funktionsaufruf ZeileLesen die Zeichenfolge T-63,36 als Funktionswert zurück. Das Komma wird nun als Dezimal- und nicht mehr als Feldtrennzeichen behandelt.

    Für die Durchführung des Importvorgangs muss der Anwender eine Möglichkeit haben, das Laufwerk, den Pfad und den Dateinamen der QIF-Datei einzugeben. In der Beispieldatenbank erfolgt die Eingabe über das Formular frmStart (Abb. 3). Es enthält das Kombinationsfeld txtDateiname, in das der Dateiname eingegeben oder aus einer Liste übernommen werden kann.

    Abb. 3: Eingabe von Laufwerk, Pfad und Dateiname der Importdatei

    Das Formular ist bewusst ziemlich einfach gehalten. Um beispielsweise die Vorschlagsliste für QIF-Dateien zu ändern, müssen Sie in die Entwurfsansicht des Formulars wechseln. öffnen Sie das Eigenschaftenfenster des Steuerelements txtDateiname, und ergänzen Sie weitere Pfade in der Eigenschaft Datensatzherkunft.

    Die Schaltfläche Schließen des Formulars wurde mit dem Befehlsschaltflächen-Assistent von Access erstellt. Bei einem Klick auf die Schaltfläche Starte Import wird folgende Anweisung ausgeführt:

    QuickenImportieren (Me!txtDateiname)

    Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar