Benutzereingabe prüffen
Prüfung ob die Eingabe Numeric 5(4,2) ist
Hallo Leute,
ich habe ein kleines Visual Basic Programm erstellt, dass mit Hilfe einer Gespeichterten Prozedur einen Wert in der Datenbank aktualisiert-ändert....
Dieser Wert (freq) ist eine numeric 5(4,2) in der Datenbank. Das programm nehmt die freq von einer Textbox und so wird sie mit der SP aktualisiert. Ich will jetzt sicher sein ob die Eingabe vom benutzter richtig ist, also das richtige Format hat damit in der Datenbank keinen Falschen Werte eingegeben werden oder die Prozedur mit einem Unbekannten Fehler platzt. Ich dachte ich versuche mal
if not isnumeric(freq)
msgbox "Der Wert ist falsch"
End if
Aber mit isnumeric werden wohl die Negativen Zahlen nicht überprüft und in der Datenbank sind Negative Zahlen nicht erlaubt. Ausserdem würde ich gerne dass die Zahl zwischen 0.1 und 10 ist...
Wenn ich noch eine Prüfung im Code haben muss bitte schreibt es mir. Ich will einfach mal sehen wie diese Prüfungen von jemandem mit großer Erfahrung definiert werden...
Danke im voraus
und viele liebe Grüße
Praktikantin
Hallo Leute,
ich habe ein kleines Visual Basic Programm erstellt, dass mit Hilfe einer Gespeichterten Prozedur einen Wert in der Datenbank aktualisiert-ändert....
Dieser Wert (freq) ist eine numeric 5(4,2) in der Datenbank. Das programm nehmt die freq von einer Textbox und so wird sie mit der SP aktualisiert. Ich will jetzt sicher sein ob die Eingabe vom benutzter richtig ist, also das richtige Format hat damit in der Datenbank keinen Falschen Werte eingegeben werden oder die Prozedur mit einem Unbekannten Fehler platzt. Ich dachte ich versuche mal
if not isnumeric(freq)
msgbox "Der Wert ist falsch"
End if
Aber mit isnumeric werden wohl die Negativen Zahlen nicht überprüft und in der Datenbank sind Negative Zahlen nicht erlaubt. Ausserdem würde ich gerne dass die Zahl zwischen 0.1 und 10 ist...
Wenn ich noch eine Prüfung im Code haben muss bitte schreibt es mir. Ich will einfach mal sehen wie diese Prüfungen von jemandem mit großer Erfahrung definiert werden...
Danke im voraus
und viele liebe Grüße
Praktikantin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123296
Url: https://administrator.de/contentid/123296
Ausgedruckt am: 08.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Ausserdem würde ich gerne dass die Zahl zwischen 0.1 und
10 ist...
Jaaaa..... Und warum schreibst du es dann nicht einfach hin? Leider habe ich keine Ahnung von VB, aber einen "AND"-Opertor gibt es bestimmt, ebenso wie ein größer und kleiner. Und alles zusammengepackt ergibt: If not (isnumeric(freq) AND freq >= 0.1 AND freq <= 10) then... Analog dazu würde ich es zumindest in jeder anderen Sprache machen. Damit hast du auch sichergestellt, dass der Wert nicht negativ ist. Die isnumierc-Abfrage an erster Stelle macht bei den meisten Programmiersprachen auch Sinn: sie liefern bei einem Vergleich "a" >= 0.1 nicht einfach "true" oder "false" sondern lösen eine Ausnahme aus.10 ist...
Gruß
Filipp
Hallo Praktikantin!
Vielleicht so:
oder so:
Gruß Dieter
Vielleicht so:
Private Sub Button_Click()
On Error GoTo SendErrMsg 'Error wenn folgender Test Not Numeric
If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg
'..........
Exit Sub
SendErrMsg:
Hide
MsgBox "Der Wert ist falsch"
Show
End Sub
oder so:
Private Sub Button_Click()
If IsNumeric(TextBox) Then
If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg
Else
GoTo SendErrMsg
End If
'..........
Exit Sub
SendErrMsg:
Hide
MsgBox "Der Wert ist falsch"
Show
End Sub
Gruß Dieter
Hallo Praktikantin!
Aber den Test "IsNumeric" oder die Anweisung "On Error" verwendest Du hoffentlich auch?
Noch ein Tip: Verwende anstatt LTrim/RTrim nur Trim.
Und dafür muss man kein Experte sein. Ich bin zumindest keiner
Gruß Dieter
Aber den Test "IsNumeric" oder die Anweisung "On Error" verwendest Du hoffentlich auch?
Noch ein Tip: Verwende anstatt LTrim/RTrim nur Trim.
Und dafür muss man kein Experte sein. Ich bin zumindest keiner
Gruß Dieter
Hallo Praktikantin!
Also, wenn bei dem Test kleiner/größer kein numerischer Wert vorhanden ist, dann wird ein Error-Ereignis ausgelöst. Daher muss entweder explizit ein IsNumeric-Test ausgeführt werden oder mit On Error Goto dafür gesorgt werden, das das Error-Erreignis vom Code selbst mit einem Goto verarbeitet wird.
Entweder diesen Code:
oder diesen Code verwenden:
Der Rest ist gleich.
Das löschen der TextBox, kannst Du in dem Teil mit der MsgBox mit einbinden.
Gruß Dieter
Also, wenn bei dem Test kleiner/größer kein numerischer Wert vorhanden ist, dann wird ein Error-Ereignis ausgelöst. Daher muss entweder explizit ein IsNumeric-Test ausgeführt werden oder mit On Error Goto dafür gesorgt werden, das das Error-Erreignis vom Code selbst mit einem Goto verarbeitet wird.
Entweder diesen Code:
On Error GoTo SendErrMsg
If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg
If IsNumeric(TextBox) Then
If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg
Else
GoTo SendErrMsg
End If
Der Rest ist gleich.
Das löschen der TextBox, kannst Du in dem Teil mit der MsgBox mit einbinden.
Gruß Dieter