Probleme mit If Anweißung Verfasst am: 30.07.2009, 15:25
Guten Tag Zusammen,
ich habe heute gestern Abend angefangen mein erstes richtiges Programm zu schreiben. Leider habe ich direkt ein Fehler, welchen ich selber nicht eigenständig Lösen kann.
'Wir deklarieren die benötigten Variablen
Dim Ergebnis As Double
Dim Alter As Double
Dim Größe As Double
Dim Gewicht As Double
'Alle benötigten Variablen sind deklariert
'***********************************************
'Wir geben den Variablen Werte, mithilfe den Textboxen
'Achtung: Wir müssen die Werte der Textboxen umwandeln!!!
Alter = Val(txt_alter.Text)
Größe = Val(txt_größe.Text)
Gewicht = Val(txt_gewicht.Text)
'Jetzt haben alle Variablen Werte, sodass wir unsere Rechnung durchführen können
'************************************************
If txt_alter.Text = "" Then
MsgBox "Bitte tragen Sie ihr Alter ein!", vbInformation + vbOKOnly, "Angaben"
End If
If txt_größe.Text = "" Then
MsgBox "Bitte tragen Sie ihr Größe ein!", vbInformation + vbOKOnly, "Angaben"
End If
If txt_gewicht.Text = "" Then
MsgBox "Bitte tragen Sie ihr Gewicht ein!", vbInformation + vbOKOnly, "Angaben"
End If
[b]
If txt_größe.Text = "" And txt_gewicht.Text = "" Then
MsgBox "Error"
Else
Ergebnis = Gewicht / (Größe * Größe)
End If
[/b]
'************************************************
'Bevor wir das Ergebnis ausgeben, runden wir dieses auf der ersten Nachkommerstelle
Ergebnis = Round(Ergebnis, 1)
'************************************************
'Das Ergebnis der Rechnung wird in der Textbox "txt_ausgabe.Text" ausgegeben.
txt_ausgabe.Text = Ergebnis
'txt_ausgabe.Text = Ergebnis
'************************************************
End Sub
Mein Fehler liegt beim dickgeschrieben.
Wenn ich im Programm keine Größe angegeben habe und dann auf rechnen klicke, erscheint wohl "Bitte tragen Sie ihr Größe ein!", aber direkt danach kommt ein Laufzeitfehler, mit den Inhalt : Division durch Null.
hallo
das liegt dran
dass vb den code einfach weiter abarbeitet
bis es zur division kommt
d.h. du musst die aktion vorher abbrechen
Code:
if txt_größe.text = "" then
msgbox "Gib bitte deine größe an"
Exit sub '<------ dann springt vb automatisch zum ende
endif
klar?
und dann wenn du die größe eingegeben hast entfällt das ja
und es kann die rechnung ausgeführt werden
wenn ich dir noch einen tipp geben darf
um fehler vorzubeugen...
Code:
If IsNumeric(txt_größe.Text) = False Then 'wenn die eingabe keine zahl ist mache...
txt_größe.Text = "" 'textbox leeren
txt_größe.SetFocus 'den cursor in die box setzen
Beep 'einen beepton ausgeben
Exit Sub 'wie oben
End If
lg
und viel erfolg mit deinem bmi rechner
(ich hasse den bodymaß index ... er sagt bin knapp am übergewicht und bin aber eigentlich schlank ^^
irre oder)