Beitrag aus SmartTools Access Weekly
Individuelle Eingabeprüfungen in Ihren Formularen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE In meiner Datenbank werden in einem Feld Nutzereingaben verlangt, die im Format "#0,00" erforderlich sind. Die Nachkommastellen dürfen aber nur "0,00", "0,25", "0,5" und "0,75" beinhalten. Beim ganzzahligen Anteil sind nur Werte im Bereich von "0" bis "23" gültig. Wie muss die Gültigkeitsüberprüfung aussehen, die oben genannte Voraussetzungen prüft? Bislang gehe ich den umständlichen Weg, die Eingabe mit 4 zu multiplizieren und dann zu prüfen, ob Nachkommastellen vorhanden sind, indem ich das Resultat in eine Zeichenkette umwandle, die ich dann auf das Vorhandensein eines Kommas prüfe.
Diverse Anfragen
ANTWORT Einen solchen oder ähnlichen Weg würden wir auch gehen, denn die Gültigkeitsregeln sind sehr beschränkt und decken solche Prüfungen nicht ab. Eine Alternative wäre beispielsweise die folgende Abfrage:
Dim strCheck as String, strL as String, strR as String
strCheck = CStr(Eingabefeld) '24,78
strL= Left$(strCheck, inStr(strCheck, ",") -1) '=24
strR= Mid$(strCheck, inStr(strCheck, ",") +1) '=78
If CInt(strL) < 0 Or CInt(strL) > 23 Then
MsgBox "Fehler..."
Exit sub
End If
If InStr("0;25;50;75;", strR & ";") <> 0 Then
MsgBox "Fehler..."
Exit sub
End If
Im ersten Schritt konvertieren wir die Eingabe in eine Zeichenkette wie zum Beispiel "24,78", zerlegen diese anhand des Kommas als Trennzeichen in zwei Variablen, prüfen die erste Variable mit dem Vorkommateil auf kleiner/größer "0" und "23" und zeigen ggf. einen Fehlerhinweis an. Der zweite Schritt prüft per "InStr()", ob der Nachkommateil einem der erforderlichen Werte "0", "25", "50" oder "75" entspricht und zeigt ebenfalls einen Fehlerhinweis an.