Ein leeres Textfeld ignorieren

Ein leeres Textfeld ignorieren

Bildbeschreibung hier eingeben

Ich erhalte immer eine Cast-Ausnahme, wenn ich eine Subroutine in einem Benutzerformular ausführe. Sie erkennt den Nullwert beim Lesen txtMileage.text = ""und gibt einen Fehler aus, weil sie versucht festzustellen, ob der Wert größer als 300 ist.

If btnYes.Checked = True And txtMileage.Text > 300 Then MsgBox("Distance Exceeds 300 Miles") txtMileage.Focus() Exit Sub

Ich brauche es, um die Überprüfung des Wertes zu ignorieren, wenn btnNo.checked = trueundtxtMileage.text = ""

Irgendwelche Gedanken?

Private Sub cmdCalculate_Click(sender As Object, e As EventArgs) Handles cmdCalculate.Click
    If btnNo.Checked = False And btnYes.Checked = False Then
        MsgBox("Please select yes or no")
        Exit Sub
    End If
    If btnYes.Checked = True And txtMileage.Text = "" Then
        MsgBox("Please instert Mileage")
        txtMileage.Focus()
        Exit Sub
    End If
    If btnNo.Checked = True And txtMileage.Text = "" Then

    End If
    If btnYes.Checked = True And txtMileage.Text > 300 Then
        MsgBox("Distance Exceeds 300 Miles")
        txtMileage.Focus()
        Exit Sub
    End If
End Sub

mit Fehlermeldung aktualisiert, es wirft es immer noch auf

If btnYes.Checked = True And txtMileage.Text = "" Then MsgBox("Please insert Mileage") txtMileage.Focus() Exit Sub ElseIf btnYes.Checked = True And txtMileage.Text > 300 Then MsgBox("Distance Exceeds 300 Miles") txtMileage.Focus() Exit Sub End If

ElseIf btnYes.Checked = True And txtMileage.Text > 300 Thenscheint die Problemlinie am Ende zu seinThen

Antwort1

Wie wäre es, einfach zu prüfen, ob .Textein numerischer Wert enthalten ist und ihn, wenn nicht, auf festzulegen 0?

If Not IsNumeric(txtMileage.Text) Then txtMileage.Text = 0

Um eine Änderung der Steuerung zu vermeiden, möchten Sie es möglicherweise stattdessen als Variable speichern.

Dim txt as Variant
txt = txtMileage.Text
If Not IsNumeric(txt) Then txt  = 0

Antwort2

Setzen Sie es als Ausschlussoption durch elseif. txtMileage.Text = ""Es besteht keine Möglichkeit, dass die Prüfung durchgeführt wird if >300, wenn leer ist.

Private Sub cmdCalculate_Click(sender As Object, e As EventArgs) Handles cmdCalculate.Click
    If btnNo.Checked = False And btnYes.Checked = False Then
        MsgBox("Please select yes or no")
        Exit Sub
    End If
    If btnYes.Checked = True And txtMileage.Text = "" Then
        MsgBox("Please instert Mileage")
        txtMileage.Focus()
        Exit Sub
    Elseif  btnYes.Checked = True And txtMileage.Text > 300 Then
        MsgBox("Distance Exceeds 300 Miles")
        txtMileage.Focus()
        Exit Sub
    End If
    If btnNo.Checked = True And txtMileage.Text = "" Then

    End If
End Sub

verwandte Informationen