Veröffentlicht 12. Juni 200223 j Hallo! Möchte, dass der Benutzer meines Programmes in eine Textbox einen Zeitaufwand seiner Tätigkeiten eingibt. Dies soll in Industriestunden (z. B.: 1,5 h, 1,25 h) erfolgen und somit nur in diesem Format eine Eingabe möglich sein. Gibt der Benutzer stattdessen z. B. 0.67 oder sonstiges ein, so sollte eine Fehlermeldung ausgegeben werden. Bräuchte eben einen Tipp für die Formatvorgabe. Danke euch schon mal VLG
12. Juni 200223 j Hi, ob das die ultimative Lösung ist, weiss ich nun auch nicht. Auf die Schnelle hätte ich es so gelöst: Private Sub Command1_Click() Dim zeit Dim pos zeit = CSng(Me.Text1.text) 'Zeitstring in Zahl umwandeln zeit = zeit / 0.25 ' Zeit durch 0,25 teilen pos = InStr(1, zeit, ",") ' Position des Kommas ermitteln If pos > 0 Then 'wenn Pos 0 dann ok, ansonsten... MsgBox "Falsche Eingabe" End If End Sub Ansatz ist, dass die Zeit geteilt durch 0,25 eine ganze Zahl ergeben muss. Also Teilen, prüfen, ob im String ein Dezimaltrenner drinnen ist, wenn ja, dann Falsche Eingabe. greetings Buell
12. Juni 200223 j Danke dir! War zwar nicht ganz das, was ich wollte, aber für den Anfang reichts! Soll nur eingegeben werden können mit Komma und dem 0,25 Abstand. Denke das werde ich noch hinkriegen (hoffe es jedenfalls!:-)).
12. Juni 200223 j Man könnte auch die Lösung anders rangehen. Ne Combobox oder evtl. ne Listbox mit vorgefertigten Werten. Private Sub Form_Load() Dim zeit zeit = 0 For i = 1 To 100 zeit = zeit + 0.25 Me.Combo1.AddItem (CStr(zeit)) Next i End Sub da ist dann garantiert kein falscher Wert drin. Problem ist nur die Oberfläche. Müssen massenhaft Daten eingetragen werden, nerven solche Steuerelemente. greets Buell
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.