Leere Textbox abfangen

22/02/2009 - 17:07 von Rüdiger Knorr | Report spam
Hallo zusammen,

iregndwie komme ich nicht weiter!

Ich habe auf einer Form 3 Textboxen deren Inhalt als Grundlage einer
Berechnung dient und einen Button, der die Berechnung startet.

Ich versuche nun zu verhindern das eine Textbox leer bleibt wenn ich den
Button drücke.

Habe das ganze schon mit textbox_exit, setfocus etc. probiert, irgendwie
hànge ich :-(


Danke für alle Hinweise!


Rüdiger Knorr
 

Lesen sie die antworten

#1 Lisa (Nora Richter)
22/02/2009 - 18:33 | Warnen spam
Hallo Rüdiger,

Ich habe auf einer Form 3 Textboxen deren Inhalt als Grundlage einer
Berechnung dient und einen Button, der die Berechnung startet.

Ich versuche nun zu verhindern das eine Textbox leer bleibt wenn ich den
Button drücke.



Ich würde dazu eine Function SelfValidate verwenden, die den Inhalt
aller drei Textboxen auswertet und entsprechend reagiert, hier im
Beispiel Textbox1 bis Textbox3. Sie gibt False zurück, falls eins der
Felder noch leer ist oder keine Zahl enthàlt, und ermöglicht dem
Nutzer die Eingabe im "angemeckerten" Feld. Im Click-Ereignis des
Buttons wird diese Function vorgeschaltet, damit das Click erst
rechnet, wenn alle Felder gefüllt und gültig sind. Hier das Beispiel:
_____
Private Function SelfValidate() As Boolean

Dim i As Integer
Dim myTB As MSForms.Control

SelfValidate = False 'sicherheitshalber initialisieren

For i = 1 To 3
Set myTB = Me.Controls("Textbox" & i)
If myTB.Text = "" Then
Call Fehlermeldung(myTB)
Exit Function
Else
If Not IsNumeric(myTB.Text) Then
Call Fehlermeldung(myTB)
Exit Function
End If
End If
Next i
SelfValidate = True

End Function

Private Sub Fehlermeldung(ByRef TB As MSForms.TextBox)

Dim strMeldung As String

strMeldung = " enthàlt keine Zahl. Bitte ausfüllen!"
MsgBox TB.Name & strMeldung, vbInformation
TB.SetFocus

End Sub

Private Sub CommandButton1_Click()

Dim Ergebnis As Long

If SelfValidate = False Then 'vorsichtshalber
Exit Sub
End If

Ergebnis = CInt(Me.TextBox1.Text) + CInt(Me.TextBox2.Text) + CInt
(Me.TextBox3.Text)
'Das ist natürlich nur ein Beispiel für irgendwas, das berechnet
werden soll
MsgBox Ergebnis

End Sub
_____
Gruß
Lisa
_____
http://www.schreibbuero-richter.de/textmarker.html

Ähnliche fragen