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

Datenbindung 5

Datenbindung (Teil 5)

 

Es gibt eine weitere Aufgabe, für die es bisher noch keine Lösung gibt. Dabei geht es darum, vor dem Speichern eines Datensatzes zu prüfen, ob alle Felder gültige Werte enthalten. Auch die Prüfung auf Abhängigkeiten zwischen den einzelnen Feldern ist hier zu nennen.

Normalerweise würde diese Prüfung beim Klick auf den Speichern-Button ausgelöst. Dieser Button  enthält aber keinen Code. Statt dessen wird in der Klasse "cls_DataBinder" auf das Klick-Ereinis dieses Buttons reagiert.
VBA-Code für die Validierung der Formulardaten hier einzufügen verbietet sich von selbst, da diese Klasse von allen gebundenen Formularen verwendet wird.

Die Lösung für dieses Problem liegt darin, im VBA-Code des Formulars eine Property bereitzustellen, die die Validierung vornimmt. Aus der Klasse "cls_DataBinder" wird dann diese Property vor dem Speichern abgefragt.
Der Aufruf wird in einer eigenen Methode gekapselt. Dort wird mittels On Error Resume Next der auftretende Fehler ignoriert, wenn ein Formular die Property für die Validierung nicht implementiert hat.

Der Code für den Speichern-Button wird wie folgt ergänzt:

Private Sub m_OKButton_Click()

    If IsFormDataValid = False Then Exit Sub

    GetFormData
    m_DataObject.Save

    DoCmd.Close acForm, m_Form.Name

End Sub

Die Methode "IsFormDataValid" wird wie folgt implementiert:

Private Function IsFormDataValid() As Boolean

    IsFormDataValid = True
 
    On Error Resume Next
    IsFormDataValid = Forms(m_Form.Name).IsFormDataValid
 
End Function


Im VBA-Code des Formulars ist bei Bedarf eine Property mit dem Namen "IsFormDataValid" zum implementieren. Eine solche Property könnte beispielhaft so aussehen:

Public Property Get IsFormDataValid() As Boolean

    If Len(Trim$(Nz(Me.txtStrasse, vbNullString))) < 3 Then
        MsgBox "Straße muss mindestens 3 Zeichen lang sein."
        Exit Property
    End If
 
    IsFormDataValid = True

End Property

Eine Beispieldatenbank steht hier zum Download bereit:
Für Access 2000 / 2002 / 2003 / 2007 / 2010

Microsoft MVP - Thomas Möller


21.04.2017:
TM-VBALineNumbers
Version 1.28.10 bereitgestellt.


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


07.12.2014:
TM-DatenKlassenGenerator
Version 3.55 bereitgestellt.


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