|
|
Datenbindung 2Datenbindung (Teil 2)
Eine Datenklasse an ein Formular zu binden ist, wie der vorherige Beitrag gezeigt hat, keine allzu schwere Aufgabe. Das Problem der bisherigen Lösung ist nur, dass sehr viel Code in das Formularmodul geschrieben werden muss. Mit einem Tool ist das sicher kein großes Problem. Aber schön ist das nicht. Spätestens, wenn eigener Code ergänzt wird, kommt es zu einer Vermischung von generiertem und selbst erstelltem Code. Dieses Problem lässt sich lösen bzw. deutlich entschärfen, wenn man den Code für die Datenbindung in ein Klassenmodul auslagert. Das Observer-Pattern kommt hier zum Einsatz. Der Code im Formular schrumpft auf folgende Zeilen: Option Compare Database
Option Explicit Private m_Kunde As cls_Kunden Private m_DataBinder As cls_DataBinder Private Sub Form_Load() 'Objekte instanzieren Set m_Kunde = New cls_Kunden Set m_DataBinder = New cls_DataBinder 'DataBinder füllen Set m_DataBinder.Form = Me.Form Set m_DataBinder.DataObject = m_Kunde Set m_DataBinder.CancelButton = Me.cmdAbbrechen Set m_DataBinder.OkButton = Me.cmdSpeichern 'Steuerelemente an Daten binden m_DataBinder.AddControl Me.txtId, "ID" m_DataBinder.AddControl Me.txtFamname, "FamName" m_DataBinder.AddControl Me.txtVorname, "Vorname" m_DataBinder.AddControl Me.txtGeburtstag, "Geburtstag" ' Weitere Steuerelemente ' ... 'Daten laden If Nz(Me.OpenArgs, 0) <> 0 Then m_Kunde.Load Me.OpenArgs m_DataBinder.LoadFormData End If End Sub Private Sub Form_Unload(Cancel As Integer) 'Aufräumen Set m_DataBinder = Nothing Set m_Kunde = Nothing End Sub Eine Beispieldatenbank steht hier zum Download bereit:
|
02.10.2020: 06.11.2019: 06.05.2017: 27.03.2016: 23.05.2014: |
|
|