- Die Tabelle konto enthält die Felder ID (als Verknüpfung zum Hauptformular), Part (zur Auswahl mehrerer Konten zur gleichen Adresse), IBAN, BIC, Name (Kontoinhaber). (Zumindest für DE kann ich auf den Banknamen verzichten; inwieweit das international nötig ist, lasse ich erstmal offen. Das interessiert auch für das Problem nicht.)
- Die Felder Part, BIC, Name werden mit Kontrollfeldern verknüpft: Part als numerisches Feld, Name als Textfeld, BIC als maskiertes Feld (wegen automatischer Großschreibung).
- Das Datenfeld IBAN wird nach dem Einlesen (Ereignis "nach dem Datensatzwechsel") aufgeteilt in die Kontrollfelder Lkz (maskiert, nur Großbuchstaben), Zahl (maskiert, zwei Ziffern), Konto (maskiert, bis zu 37 Zeichen incl. Leerzeichen).
- Nach dem Verlassen des Feldes Konto (Ereignis "bei Fokusverlust") wird die Gültigkeit der IBAN geprüft (siehe meine früheren Fragen). Außerdem werden für DE mithilfe der Bankleitzahl (den ersten 8 Stellen der Kontoangabe) aus der Tabelle blz mit einem SELECT-Befehl die BIC und der Bankname ausgelesen und in die Kontrollfelder BIC (siehe oben) und Bankname (Text, zz. nur Anzeige) eingetragen:
Code: Alles auswählen
oForm.Bankname.Text = oResult.getString(1) oForm.BIC.Text = oResult.getString(2)
- Gespeichert wird durch einen Button Bestätigen mit dem Ereignis "Aktion ausführen". Das Makro dafür setzt die IBAN-Teile zusammen und speichert:
Code: Alles auswählen
text = oForm.iban_lkz.Text + oForm.iban_zahl.Text + ReplaceString( oForm.iban_konto.Text, "", " ") oForm.updateString(3, text) if oForm.isNew then oForm.insertRow() else oForm.updateRow
Code: Alles auswählen
oForm.updateString(5, oForm.BIC.Text)