|
|
Datenbindung 4Datenbindung (Teil 4)
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: Public Sub GetFormData()
On Error Resume Next 'Variablen deklarieren Dim oBinderControl As cls_DataBinderControl For Each oBinderControl In m_ControlsCollection CallByName m_DataObject, oBinderControl.FieldName, VbLet, _ m_Form.Controls(oBinderControl.Control.Name).Value Next End Sub 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: Private Sub m_OKButton_Click()
GetFormData m_DataObject.Save DoCmd.Close acForm, m_Form.Name End Sub
Der Code für diese Methode sieht wie folgt aus: Public Sub GetFormData()
m_DataBinder.GetFormData End Sub Eine Beispieldatenbank steht hier zum Download bereit:
|
02.10.2020: 06.11.2019: 06.05.2017: 27.03.2016: 23.05.2014: |
|
|