[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Begrenzung der Textlänge bei Memofeldern

Sprache / Programm: Access ab Version 97
Beschreibung

Textfelder (TextBox-Objekt) in gebundenen Formularen können u.a. an ein Feld vom Typ Text oder Memo gebunden sein.

Während man bei Textfeldern über die Feldlänge noch die Anzahl der zulässigen Zeichen begrenzen kann, ist dies bei Memofeldern nicht über die Einstellungen im Tabellenentwurf möglich.

Die hier vorgesetllte Funktion kontrolliert die Eingabe und warnt bei Überschreitung einer vorgegebenen Feldlänge.

VBA-Quelltext
Public Function TextLänge(SteuerElement As TextBox, MaxLänge As Integer)
    Dim IstLänge As Integer
    IstLänge = Len(Nz(SteuerElement.Text, 0))
   
    If IstLänge >= MaxLänge Then
        MsgBox "Sie haben bereits " & IstLänge & " Zeichen eingeben." _
            & vbNewLine & "Leider können nur die ersten " & MaxLänge & _
            " Zeichen verwendet werden", , Fehler
    End If
End Function
Argumente der Funktion/Prozedur

SteuerElement

Textfeld als Textbox-Objekt, welches den zu üperprüfenden Text enthält.

MaxLänge

Zulässige Länge des Textes. Bei Überschreiten dieser Länge wird gewarnt.

Anwendungsbeispiel(e)...

In die Ereigniseigenschaft 'Bei Änderung' des Textfeldes mit dem Namen 'Referenten' wird die Funktion <CODE>=TextLänge([Referenten];150)<CODE> eingetragen. Dadurch wird gewarnt, falls eine Eingabe mehr als 150 Zeichen hat.

Hinweis

Der hier gezeigte Code wird als Funktion programmiert obwohl es keinen Rückgabewert gibt, damit Access diese Funktion aus einem Standardmodul heraus aufrufen kann. Dadurch wiederum können verschiedene Textfelder in verschiedenen Formularen auf den gleichen Code zugreifen.

Wenn der Code in ein Formular integriert wird, reicht eine Prozedur (Sub) aus.

Anwendungsgebiete, Fehler und Warnungen

Die Funktion warnt beim Überschreiten der Textlänge, verhindert die Eingabe aber nicht. Die Funktion überwacht keine Texte, die aus der Zwischenablage kopiert werden.