Datenbindung 1
Datenbindung (Teil 1)
Datenklassen zu erstellen ist mit dem TM-DatenKlassenGenerator kein großes Problem. Wie sieht es aber aus, wenn man ein Formular an eine solche Datenklasse binden will?
Ein erster, einfacher Ansatz kann wie folgt aussehen:
- Auf Modulebene wird eine Variable für die Datenklasse deklariert.
- Im Form-Load-Ereignis wird diese Variable instanziert und die Daten geladen.
- Dazu wird die Load-Methode der Datenklasse aufgerufen und im Anschluss die Werte aus der Klasse den entsprechenden Steuerelementen zugewiesen.
- Im After-Update-Ereignis der Steuerelemente wird der aktuelle Inhalt des Steuerelements in die entsprechende Eigenschaft der Datenklasse geschrieben.
- Über zwei Schaltflächen kann das Formular geschlossen werden. Dabei werden die Daten entweder über die Save-Methode der Datenklasse gespeichert oder die Speicherung wird explizit deaktiviert.
- Im Unload-Ereignis des Formulars wird dann noch die Variable der Datenklasse freigegeben.
Option Compare Database
Option Explicit
Private m_Kunde As cls_Kunden
Private Sub Form_Load()
Set m_Kunde = New cls_Kunden
If Nz(Me.OpenArgs, 0) <> 0 Then
DatenLaden Me.OpenArgs
End If End
Sub Private
Sub Form_Unload(Cancel As Integer)
Set m_Kunde = Nothing
End Sub
Private Sub txtFamname_AfterUpdate()
m_Kunde.FamName = Me.txtFamname.Text
End Sub
Private Sub txtVorname_AfterUpdate()
m_Kunde.VorName = Me.txtVorname.Text
End Sub Private
' Weitere Steuerelemente
' ...
Private Sub cmdAbbrechen_Click()
m_Kunde.AutoSave = False
DoCmd.Close acForm, Me.Name
End Sub
Private Sub cmdSpeichern_Click()
m_Kunde.Save
DoCmd.Close acForm, Me.Name
End Sub
Private Sub DatenLaden(ID As Long)
m_Kunde.Load ID
Me.txtId = m_Kunde.ID
Me.txtFamname = m_Kunde.FamName
Me.txtVorname = m_Kunde.VorName
' Weitere Steuerelemente
' ...
End Sub
Eine Beispieldatenbank steht hier zum Download bereit:
Für Access 2000 / 2002 / 2003 / 2007 / 2010