Der Code für die Datenbindung funktioniert soweit schon ganz gut. Es gibt jedoch ein Problem. Wenn mittels VBA-Code der Wert eines Steuerelements geändert wird, wird diese Änderung nicht an die zugehörige Property der Datenklasse weitergeleitet. Die Daten im Formular und in der Datenklasse unterscheiden sich also. Spätestens, wenn die Daten gespeichert werden sollen, wird das zum Problem.
Die Lösung für dieses Problem liegt darin, eine Methode zu schaffen, die alle Steuerelemente durchläuft und den aktuellen Wert in die zugehörige Property der Datenklasse schreibt. Dazu wird die Klasse "cls_DataBinder" um die Methode "GetFormData" erweitert.
Der Code für diese Methode sieht wie folgt aus:
Vor dem Speichern der Daten wird diese Methode aufgerufen. Dazu wird in der Ereignis-Prozedur für das Klick-Ereignis des OK-Buttons der Aufruf wie folgt eingefügt:
Jetzt fehlt noch die Möglichkeit, dass Einlesen der Steuerelementwerte in die Datenklasse von außen anzustoßen. Dazu spendieren wir der "Fachklasse" ebenfalls eine Methode "GetFormData".
Der Code für diese Methode sieht wie folgt aus:
Eine Beispieldatenbank steht hier zum Download bereit:
Für Access 2000 / 2002 / 2003 / 2007 / 2010