Anzahl der Zeichen während der Eingabe anzeigen

Hallo

Weiss jemand wie ich die Anzahl von eigebenen Zeichen während der Eingabe in eine Textbox laufend anzeigen lassen kann?

Das Problem ist folgendes: Wenn ich Enter drücke ist es kein Problem die Länge des Strings im Textfeld zu bestimmen.Aber während der Eingabe klappts nich. Geht sowas überhaupt?

Danke schonmal

Gruß Matze

Hallo Matze,

ganz einfach:
Du schreibst eine Prozedur bei dem Ereignis „Bei Änderung“ des Textfeldes. So hat’s bei mir geklappt:

Private Sub txtText_Change()
Me.txtZahl = Len(Me.txtText)
Me.txtZahl.SetFocus
Me.txtText.SetFocus
Me.txtText.SelStart = Len(Me.txtText)
End Sub

Der ganze SetFocus-Kram ist für die Aktualisierung des AnzahlZeichen-Feldes notwendig, mit SelStart=len(…) setzt man den Cursor wieder an das Ende des Textes im Textfeld; sonst wäre der ganze Text markiert.

Nur wenn der ganze Text gelöscht wird, kann es Probleme mit der letzen Zeile geben (Ungültige Verwendung von NULL).
Solltest du vielleicht abfangen, mit ner Error-Routine oder ner Abfrage, ob die Textlänge größer als 0 ist.

bis dann,
Jan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]


Me.txtText.SelStart = Len(Me.txtText)

Nur wenn der ganze Text gelöscht wird, kann es Probleme mit
der letzen Zeile geben (Ungültige Verwendung von NULL).
Solltest du vielleicht abfangen, mit ner Error-Routine oder
ner Abfrage, ob die Textlänge größer als 0 ist.

Das Problem hatte ich auch. Es ist aber recht einfach zu umgehen, indem man folgendes macht:

 Me.txtText.SelStart = Len("" & Me.txtText)

Bei Zahlen geht das ebenso:

 lngEineZahl = CLng("0" & Me.txtZahl)

Simpel, aber effenktiv, da man ohne Error-Dingsbums auskommt.
Nur bei Checkboxen undso muß man damit hantieren, damit man „False“ bekommt, falls das Ding einen Null-Value hat.

Kristian