Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

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.