Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Benutzereingabe prüffen

Mitglied: Praktikantin

Praktikantin (Level 1) - Jetzt verbinden

23.08.2009, aktualisiert 12:43 Uhr, 3501 Aufrufe, 6 Kommentare

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
Mitglied: filippg
23.08.2009 um 13:36 Uhr
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.

Gruß

Filipp
Bitte warten ..
Mitglied: 76109
23.08.2009 um 13:40 Uhr
Hallo Praktikantin!

Vielleicht so:
01.
Private Sub Button_Click() 
02.
 
03.
    On Error GoTo SendErrMsg 'Error wenn folgender Test Not Numeric 
04.
     
05.
    If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg 
06.
     
07.
   '.......... 
08.
 
09.
    Exit Sub 
10.
 
11.
SendErrMsg: 
12.
    Hide 
13.
    MsgBox "Der Wert ist falsch" 
14.
    Show 
15.
End Sub
oder so:
01.
Private Sub Button_Click() 
02.
 
03.
    If IsNumeric(TextBox) Then 
04.
        If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg 
05.
    Else 
06.
        GoTo SendErrMsg 
07.
    End If 
08.
     
09.
   '.......... 
10.
 
11.
    Exit Sub 
12.
 
13.
SendErrMsg: 
14.
    Hide 
15.
    MsgBox "Der Wert ist falsch" 
16.
    Show 
17.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: Praktikantin
23.08.2009 um 13:56 Uhr
Hallo Filipp und Dieter,

ja das mache ich dann-->
If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg

Damit ist wohl alles ok . Das einzige was ich noch machen muss ist ein ltrim, rtrim oder trim damit ich die spaces lösche. Somit habe ich alle Fehler die ein benutzter machen kann.

Vielen dank an euch beide, man füllt sich einfach sicherer wenn man einen Tipp von einem Experten bekommt und so sammelt man auch tolle Ideen! Noch einmal danke

Viele Grüsse Praktikantin
Bitte warten ..
Mitglied: 76109
23.08.2009 um 14:12 Uhr
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
Bitte warten ..
Mitglied: Praktikantin
23.08.2009 um 14:32 Uhr
Ok Dieter,

ich werde auch isnumeric verwenden und Trim statt ltrim/rtrim (zu viel SQL im Kopf) Gut dass Du mir das noch geschrieben hast... Ich dachte mit der If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg wäre alles ok... Jetzt wo ich darüber nachdenke kann doch etwas passieren... Ok dann. Mit OnError meinst Du diesen abschnitt oder?

SendErrMsg:
Hide
MsgBox "Der Wert ist falsch"
Show
End Sub

Wenn so etwas vorkommt werde ich einfacht den Inhalt der Textbox löschen und den Benutzer auffordern einen richtigen Wert einzugeben. Ist das so ok?

Und noch etwas... Aus meiner Sicht, die zum ersten mal so etwas macht bist Du schon ein Experte Alles ist eben Ansichtssache!!!!

Vielen Dank
Praktikantin
Bitte warten ..
Mitglied: 76109
23.08.2009 um 15:37 Uhr
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:
01.
    On Error GoTo SendErrMsg 
02.
    If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg
oder diesen Code verwenden:
01.
    If IsNumeric(TextBox) Then 
02.
        If TextBox < 0.1 Or TextBox > 10 Then GoTo SendErrMsg 
03.
    Else 
04.
        GoTo SendErrMsg 
05.
    End If

Der Rest ist gleich.

Das löschen der TextBox, kannst Du in dem Teil mit der MsgBox mit einbinden.

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Windows Tools

In den Druckvorgang eingreifen - Benutzereingabe und Ausdruck Barcode

Frage von DeeJayBeeWindows Tools3 Kommentare

Hallo zusammen, ich möchte diverse Dokumente ausdrucken (E-Mail, Word-Datei, PDF, etc) und dabei auf dem Ausdruck in einer Ecke ...

Java

Fehler beim hinzufügen der Benutzereingabe in eine Datenbank ( Java Android)

Frage von xxxxxxxJava1 Kommentar

Sehr geehrte Forum-Mitglieder, Ich habe mich vor kurzen an die App-Entwicklung gewagt und habe nun ein Problem mit meiner ...

Windows 10

Windows 10 - VPN-Verbindung beendet automatisch durch Benutzereingabe-Fehler

gelöst Frage von derAndyCWindows 103 Kommentare

Guten Abend, ich benötige mal Rat, ich weiß grade nicht mehr weiter. Ich habe mehrere Windows 10 Laptops, die ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 11 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 14 StundenAdministrator.de Feedback10 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...