Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Onlinebanking ist aktuell in aller Munde, da es für erhöhte Sicherheit einige Änderungen in den Abläufen gegeben hat. Viele Leser kennen die DDBAC-Bibliothek bereits, denn wir haben in Access im Unternehmen schon darüber berichtet und es ist auch ein Buch zu diesem Thema im André Minhorst Verlag erschienen. Wer diese Bibliothek nutzt, braucht neben einer aktuellen Version auch noch eine kleine Änderung, ohne die Vorgänge nicht mehr durchgeführt werden können. Nachdem wir im ersten Teil der Beitragsreihe das Einlesen von Kontoständen und Umsätzen beschrieben haben, kümmern wir uns nun um das Durchführen von Überweisungen.
Voraussetzungen
Voraussetzung für das Umsetzen der Lösung dieses Artikels ist das Vorhandensein einer DDBAC-Lizenz. Die damit nutzbaren Komponenten sind leider nicht mehr kostenlos verfügbar, sondern müssen lizensiert werden, bevor man diese in seine Produkte einbauen kann. Lizenzen finden Sie im Onlineshop unter https://shop.minhorst.com/access-tools/295/ddbac-jahreslizenzc=78.
Download und Installation
Nach dem Erwerben einer Lizenz erhalten Sie einen Download in ihrem Kundenkonto. Dort finden sie eine Datei namens DDBACNetWrapper-Version-5-7-65-0.zip (oder neuer), die Sie entpacken. Darin enthalten ist eine DDBACSDK.exe, die Sie auf Ihrem Rechner installieren. Anschließend finden Sie im Verzeichnis C:\Program Files (x86)\DataDesign\DDBACSDK die installierten Elemente.
Test des Quellcodes
Beim Erstellen des Codes für diesen Artikel haben wir das Tool LinqPad5 zur Programmierung und zum Testen der Funktionalität genutzt. Dieses Tool ist kostenlos. Wir haben dazu im Tool eine neue Datei erstellt und für Language den Wert VB Program ausgewählt. Die Methode Main wird beim Ausführen aufgerufen, hier haben wir die Aufrufe der einzelnen Beispielmethoden untergebracht.
Überweisung durchführen
Zum Durchführen einer Überweisung verwenden wir diesmal eine Function-Methode, da wir einen Wert zurückliefern wollen, der über den Erfolg oder Misserfolg der Überweisung Auskunft geben soll. Dieser Funktionswert soll den Datentyp Boolean aufweisen. Die benötigten Parameter für eine Überweisung sind die folgenden:
- lngContact: Index des Kontakts, für den die Überweisung durchgeführt werden soll (entspricht dem 0-basierten Index der Position des zu wählenden Kontakts aus dem Dialog Banking Kontakte, siehe Bild 1)
- lngAccount: Index des Kontos des Auftraggebers (entspricht dem 0-basierten Index der Position des zu wählenden Kontos aus dem Dialog Konten verwalten, siehe Bild 2)
- strEmpfaengername: Name des Empfängers
- strEmpfaengerIBAN: IBAN des Empfänger-Kontos
- strEmpfaengerBIC: BIC des Empfänger-Kontos
- curBetrag: Zu überweisender Betrag
- strVerwendungszweck: Verwendungszweck der Überweisung
- strMeldung: Antwort des Systems (mit ByRef deklarieren!)
Bild 1: Verwaltung der Homebanking-Kontakte
Bild 2: Verwaltung der Konten eines Homebanking-Kontakts
Die nackte Funktion, die wir nachfolgend füllen, sieht nun wie folgt aus:
Public Function Ueberweisung(lngContact As Long, lngAccount As Long, strEmpfaengername As String, strEmpfaengerIBAN As String, strEmpfaengerBIC As String, decBetrag As Decimal, strVerwendungszweck As String, ByRef strMeldung As String) As Boolean End Function
BACContact-Objekt für den Auftraggeber ermitteln
Mit dem Parameter lngContact wollen wir das BACContact-Objekt für den Eintrag im Dialog Banking Kontakte auswählen, dessen Index dem Wert dieses Parameters entspricht. Diesen speichern wir in der Variablen objContact, die wir wie folgt deklarieren:
Dim objContact As BACContact
Diese Variable füllen wir dann mit der folgenden Anweisung:
objContact = GetContacts.Item(lngContact)
Die Funktion GetContacts haben wir bereits im ersten Teil der Beitragsreihe namens Onlinebanking mit DDBAC: Saldo und Umsätze erläutert. Sie liefert eine Auflistung aller BACContact-Elemente, die über die Systemsteuerung hinzugefügt wurden. Über die Item-Eigenschaft greifen wir auf das Element mit dem mit lngContact übergebenen Indexwert zu.
BACAccount-Objekt für den Auftraggeber ermitteln
Danach benötigen wir das BACAccount-Objekt für das Konto, von dem aus die Überweisung durchgeführt werden soll. Dazu legen wir die Variable objAuftraggeber an:
Dim objAuftraggeber As BACAccount
Das BACAccount-Objekt ermitteln wir einfach über die Accounts-Auflistung des zuvor ermittelten BACContacts-Objekts: