Startseite > Add-Ins > TM-DatenKlassenGenerator > Datenbindung 2
Team-Moeller.de - Datenbankentwicklung und mehr ...

Datenbindung 2

Datenbindung (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.
Für die eigentliche Bindung der Steuerelemente braucht es dann noch eine weitere Klasse. Diese speichert die Verknüpfung zwischen Datenfeld und Steuerelement und sorgt für den Transfer der jeweiligen Werte.

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:

Für Access 2000 / 2002 / 2003 / 2007 / 2010

Microsoft MVP - Thomas Möller


02.10.2020:
TM-AbhängigeObjekte
Version 4.03 bereitgestellt.


06.11.2019:
TM VBA-Inspector:
Lösung für Installationsproblem dokumentiert.


06.05.2017:
TM-VBALineNumbers
Version 1.29.01 bereitgestellt.


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


Powered by CMSimple - Template by CMSimple-Styles.com - Autor:Thomas Möller