Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » Dateneditoren » WklValidator » Ein Kundenformular prüfen

Ein Kundenformular prüfen

In diesem Tutorial platzieren Sie einen Validator auf einem Kundenformular: Der Name ist Pflicht, die Postleitzahl hat fünf Ziffern, und ein Kunde braucht eine Telefonnummer oder eine E-Mail-Adresse. Eine verletzte Regel hält den Fokus im Feld, und ein fehlerhafter Datensatz wird nicht gespeichert.

Voraussetzungen

  • Microsoft 365 Access oder Access Runtime, in 32 oder 64 Bit, mit der WKL Forms Object Library 1.31 oder höher, installiert und für den aktuellen Windows-Benutzer registriert (Freigegebenes Paket installieren).
  • Eine neue oder vorhandene Datenbank an einem vertrauenswürdigen Speicherort.
  • Jedes WKL-Steuerelement öffnet seinen Designer auf dieselbe Weise: in der Entwurfsansicht im Eigenschaftenblatt (F4), Registerkarte Andere, Zeile Benutzerdefiniert, [...] (Designer eines Steuerelements öffnen).

Schritte

1. Beispieltabelle anlegen

Fügen Sie die Prozedur in ein Standardmodul ein und führen Sie sie einmal im Direktbereich aus (CreateValidatorSample):

Public Sub CreateValidatorSample()
    With CurrentDb
        .Execute "CREATE TABLE tblKunde (ID COUNTER CONSTRAINT PK_Kunde PRIMARY KEY, Name TEXT(50), " & _
                 "PLZ TEXT(10), Telefon TEXT(30), Mail TEXT(100))"
        .Execute "INSERT INTO tblKunde (Name, PLZ, Telefon) VALUES ('Meier', '10115', '030 123')"
    End With
End Sub

2. Formular mit Modul erstellen

Erstellen Sie ein einzelnes Formular frmKunde, gebunden an tblKunde, mit den Textfeldern Name, PLZ, Telefon und Mail. Setzen Sie die Formulareigenschaft Enthält Modul (Registerkarte Andere) auf Ja: Das Modul darf leer bleiben, doch ohne Modul gibt Access keine Ereignisse an den Validator weiter.

3. Validator einfügen

Wählen Sie Formularentwurf › Steuerelemente › ActiveX-Steuerelemente › WKL Validator und ziehen Sie ihn unter den Feldern auf, etwa so breit wie das Formular und 0,6 cm hoch. Nennen Sie ihn Validator1. Speichern Sie das Formular und lassen Sie es in der Entwurfsansicht geöffnet.

4. Regeln zuweisen

Fügen Sie die Prozedur in ein Standardmodul ein, führen Sie sie im Direktbereich aus (SetCustomerRules), während das Formular in der Entwurfsansicht geöffnet ist, und speichern Sie das Formular:

Public Sub SetCustomerRules()
    Forms!frmKunde!Validator1.Object.Rules = _
        "{""fields"":[" & _
        "{""field"":""Name"",""required"":true}," & _
        "{""field"":""PLZ"",""pattern"":""[0-9]{5}"",""text"":""Die PLZ hat fünf Ziffern.""}]," & _
        """records"":[{""atLeastOne"":[""Telefon"",""Mail""],""text"":""Telefon oder Mail angeben.""}]}"
End Sub

Dieselben Regeln lassen sich auch auf den Designer-Seiten Feldregeln und Satzregeln eingeben (Eigenschaftenblatt, Registerkarte Andere, Zeile Benutzerdefiniert [...]).

5. Ausprobieren

Öffnen Sie das Formular in der Formularansicht. Geben Sie in PLZ 123 ein und drücken Sie die Tabulatortaste: Der Fokus bleibt im Feld, das Feld erhält einen roten Rahmen, und der Validator zeigt „1 Fehler - Die PLZ hat fünf Ziffern.“ Korrigieren Sie den Wert auf 10117. Leeren Sie Telefon und versuchen Sie, den Datensatz zu speichern (Umschalt+Eingabe): Das Speichern wird abgelehnt, und die Zusammenfassung nennt die Datensatzregel. Geben Sie eine Mail-Adresse ein, und der Datensatz lässt sich speichern.

Erwartetes Ergebnis

  • Es erscheint kein Meldungsfenster; die Fehler stehen an den Feldern und in der Zusammenfassung.
  • Ein fehlerhafter Datensatz wird nicht gespeichert, wenn der Benutzer ihn speichert oder zu einem anderen Datensatz wechselt. Schließt der Benutzer das Formular mit einem nicht gespeicherten, fehlerhaften Datensatz, fragt Access, ob ohne Speichern geschlossen werden soll – wie bei jedem abgelehnten Speichern.
  • Nach Rückgängig (zweimal Esc) sind alle Markierungen verschwunden.

Nächste Schritte

de/wiki/msaccess/comctl/data-editors/validator/tutorial.txt · Zuletzt geändert: von Wolfgang van der Stille