Gast
2007-09-13, 19:41:34
Hallo,
ich habe ein kleines Problem, dessen Lösung ich gerade versuche herauszufinden. Ist eigentlich recht simpel, aber mit meinen bescheidenen Programmiererfahrungen komme ich nicht auf die Schlüsselidee, wie sich das, was ich will, realisieren lässt.
Es geht um ein kleines "Programm", das vom Anwender über eine InputBox mit einer Postleitzahl gefüttert wird. Dann soll geprüft werden, ob die eingegebene Zahl fünfstellig ist. Das Ergebnis der Prüfung soll dann über eine MsgBox ausgegeben werden.
Soweit kein Problem, das habe selbst ich auf Anhieb mit einer simplen "if...then...else"-Anweisung hinbekommen. Nun gibt es aber in den neuen Bundesländern auch Postleitzahlen, die mit 0 beginnen. Da diese führende 0 natürlich ignoriert wird, ergibt das Ergebnis der Prüfung dann keine fünfstellige Zahl, obwohl sie es eigentlich ist.
Das Datentyp Long Integer, den ich für die Speicherung der eingegebenen PLZ verwende, speichert die führende 0 bei der Eingabe ja gar nicht erst, wenn ich das richtig verstanden habe? Also muss es da schonmal was anderes sein. Als String vielleicht? Aber wie realisiere ich es da, dass die führende 0 auch als solche behandelt wird?
Die Hilfefunktion, die mir bisher sehr viele Fragen beantwortet hat, konnte mir leider in diesem Fall nicht helfen. Auch eine erste Onlinerecherche brachte keine verwendbaren Ergebnisse.
Hier mal der bisherige Code:
Public Sub plz()
On Error GoTo err_plz
'Deklaration
Dim int32_plz As Long
'Eingabe
int32_plz = InputBox("Bitte geben sie ihre Postleitzahl an.")
'Verarbeitung und Ausgabe
If int32_plz >= 10000 And int32_plz <= 99999 Then
MsgBox "Die PLZ ist fünfstellig."
Else
MsgBox "Die PLZ ist nicht fünfstellig."
End If
blah:
Exit Sub
'Fehlermeldung: "err.number" gibt Fehlernummer aus, "err.description" eine Fehlerbeschreibung.
err_plz:
MsgBox "Ein Fehler trat auf. Fehlernummer:" & Err.Number & vbCr & Err.Description
Resume blah
End Sub
Vielleicht hat einer von euch ja eine Idee.
Gruß,
ein Gast
ich habe ein kleines Problem, dessen Lösung ich gerade versuche herauszufinden. Ist eigentlich recht simpel, aber mit meinen bescheidenen Programmiererfahrungen komme ich nicht auf die Schlüsselidee, wie sich das, was ich will, realisieren lässt.
Es geht um ein kleines "Programm", das vom Anwender über eine InputBox mit einer Postleitzahl gefüttert wird. Dann soll geprüft werden, ob die eingegebene Zahl fünfstellig ist. Das Ergebnis der Prüfung soll dann über eine MsgBox ausgegeben werden.
Soweit kein Problem, das habe selbst ich auf Anhieb mit einer simplen "if...then...else"-Anweisung hinbekommen. Nun gibt es aber in den neuen Bundesländern auch Postleitzahlen, die mit 0 beginnen. Da diese führende 0 natürlich ignoriert wird, ergibt das Ergebnis der Prüfung dann keine fünfstellige Zahl, obwohl sie es eigentlich ist.
Das Datentyp Long Integer, den ich für die Speicherung der eingegebenen PLZ verwende, speichert die führende 0 bei der Eingabe ja gar nicht erst, wenn ich das richtig verstanden habe? Also muss es da schonmal was anderes sein. Als String vielleicht? Aber wie realisiere ich es da, dass die führende 0 auch als solche behandelt wird?
Die Hilfefunktion, die mir bisher sehr viele Fragen beantwortet hat, konnte mir leider in diesem Fall nicht helfen. Auch eine erste Onlinerecherche brachte keine verwendbaren Ergebnisse.
Hier mal der bisherige Code:
Public Sub plz()
On Error GoTo err_plz
'Deklaration
Dim int32_plz As Long
'Eingabe
int32_plz = InputBox("Bitte geben sie ihre Postleitzahl an.")
'Verarbeitung und Ausgabe
If int32_plz >= 10000 And int32_plz <= 99999 Then
MsgBox "Die PLZ ist fünfstellig."
Else
MsgBox "Die PLZ ist nicht fünfstellig."
End If
blah:
Exit Sub
'Fehlermeldung: "err.number" gibt Fehlernummer aus, "err.description" eine Fehlerbeschreibung.
err_plz:
MsgBox "Ein Fehler trat auf. Fehlernummer:" & Err.Number & vbCr & Err.Description
Resume blah
End Sub
Vielleicht hat einer von euch ja eine Idee.
Gruß,
ein Gast