1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Für 32Bit und 64Bit Office Versionen

Wie kann ich es verhindern das Sonderzeichen in Textfeldern eingegeben werden?

Voraussetzungen:
Das Bsp ist ab A00 lauffähig.

Funktionsweise:
Um zu verhindern das unzulässige Zeichen in ein Textfeld eingegeben werden, kann man auf das
Ereignis "Bei Taste" des betreffenden
Feldes zurück greifen. Um z.B. nur Buchstaben und Zahlen zu zulassen würde der Code so aussehen:
Private Sub Text0_KeyPress(KeyAscii As Integer)
    If KeyAscii > 47 And KeyAscii < 58 Or KeyAscii > 64 And _
        KeyAscii < 91 Or KeyAscii > 96 And KeyAscii < 123 Or KeyAscii = 8 Then
    Else: MsgBox "Es wurde ein ungültiges Zeichen eingegeben" & vbNewLine _
        & "Es sind nur Zahlen, Groß- und Kleinbuchstaben zulässig." _
        , vbCritical + vbOKOnly, "Eingabefehler!"
        Me!Text0.SetFocus
        KeyAscii = 0
    End If
End Sub
Jetzt hat diese Lösung aber den Nachteil, das man bei mehreren Textfelden, immer wieder den
gleichen Code schreiben muss.
Deshalb hab ich eine Universalprozedur geschrieben, die recht flexibel zu handeln ist.

Die Prozedur bietet 5 Möglichkeiten die in der Enum-Auflisten "ZeichenTyp" definiert sind.
Diese Auflistung hat auch den Vorteil, das beim Prozeduraufruf nur diese Möglichkeiten
gesetzen werden können (s. Bild)

Public Enum ZeichenTyp
    NurZahlen = 1
    NurBuchstabenGross = 2
    NurBuchstabenKlein = 3
    NurBuchstaben = 4
    ZahlenUndBuchstaben = 5
End Enum


Kommen wir nun zum Aufruf der Prozedur.
Hier der Prozedurkopf:

Public Sub KeineSonderzeichen(cText As Control, iType As ZeichenTyp, _
                               iKey As Integer, _
                               Optional bSpace As Boolean = False, _
                               Optional bKomma As Boolean = False)

Es müssen 3 Parameter übergeben und es können noch 2 optionale Parameter übergeben werden.

cText = Name des Textfeldes das geprüft werden soll
iType = Typ der Prüfung, diese sind in der Enum-Auflistung "ZeichenTyp" hinterlegt.
iKey = ist der Ascii-Code der gedrückten Taste, dieser wird vom KeyPress-Ereignis übernommen.

bSpace = Optional ob Leerzeichen zulässig sind, Standardwert=Nein. Gilt nicht für Zahlenfelder.
bKomma = Optional ob Kommastellen bei Zahlenfeldern zugelassen werden. Gilt nur für Zahlenfelder.

Ein Aufruf könnte dann z.B. so aussehen:
für das Textfeld "txt_BmL" nur Buchstaben, gross und klein, mit Leerzeichen
Private Sub txt_BmL_KeyPress(KeyAscii As Integer)
    KeineSonderzeichen Me!txt_BmL, NurBuchstaben, KeyAscii, True
End Sub

Der im Code enthaltene iKey=8 ermöglicht das Löschen von Eingaben mittels Delete-Taste

Wird ein unzulässiges Zeichen eingegeben erscheint eine MsgBox mit dem Hinweis und das ungültige Zeichen wird sofort gelöscht.
z.B.:


Es besteht natürlich die Möglichkeit die Prozedur beliebig zu erweitern oder zu verändern.
Denkbar wären z.B. das zulassen von deutschen Umlauten.
Hier die Codes dafür:

ä = 228
ö = 246
ü = 252
ß = 223
Ä = 196
Ö = 214
Ü = 220

Dateien:

Für 32Bit und 64Bit Office Versionen

Einschränken von Textfeldeingaben durch das Ereignis "Bei Taste"

ab A00

Die Zip-Datei enthält eine Version ab A00
Datum 05.02.2018
Dateigröße 23.46 KB
Download 1.928


 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png6.png0.png7.png2.png
Heute68
Gestern206
Diese Woche274
Dieser Monat4695
Total1576072

  • IP: 54.172.169.199
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

19. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...