Programm ändern Schritt 3

Ein VBA-Programm ändern: Plausibilisierung der Texteingaben

Die Felder Nachname, Vorname, Straße und Ort können nicht auf die gleiche Art wie die Postleitzahl plausibilisiert werden. Hier ist es lediglich notwendig, die Pflichteingabe zu prüfen, was nichts anderes bedeutet, als die Länge der Eingabe auf > 0 zu überprüfen.

Da auch Leerzeichen als „vollwertige Zeichen“ gelten, ist es ratsam, vor der Längenüberprüfung alle führenden und abschließenden Leerzeichen zu entfernen, um wirklich nur noch die Textlängen überprüfen zu können. Dies lässt sich quasi „automatisieren“, in dem nach jeder Eingabe in einer dieser Felder mögliche Leerzeichen entfernt werden.

Dazu müssen wir wissen, wann eine Eingabe beendet ist; dies ist in der Regel dann der Fall, wenn ein Textfeld „verlassen“ wird. VBA stellt uns für dieses Ereignis die Routine AfterUpdate zur Verfügung. Diese Ereignisprozedur wird immer dann aufgerufen, wenn ein Eingabefeld verlassen wird und sich zuvor die Inhalte der Textbox verändert haben.

Wir benötigen also für die vier Textfelder Nachname, Vorname, Straße und Ort jeweils die Ereignisprozeduren AfterUpdate:

Beispiel:

' Die benötigten Ereignisprozeduren
Private Sub txtNachname_AfterUpdate()
 
End Sub
Private Sub txtVorname_AfterUpdate()
 
End Sub
Private Sub txtStrasse_AfterUpdate()
 
End Sub
Private Sub txtOrt_AfterUpdate()
 
End Sub

Jetzt könnten wir im jeden Feld überprüfen, ob sich am Anfang oder am Ende der Eingabe ein oder mehrere Leerzeichen befinden. Das wäre aber sehr aufwendig und unnötig zeitintensiv. Aus diesem Grund benutzen wir eine VBA-Funktion die dies für uns übernimmt und auch gleichzeitig alle Leerzeichen am Anfang und am Ende eines Strings entfernt; es handelt sich um die Trim$-Funktion.

Das sog. „Trimmen“ von Strings wird sehr oft benötigt, da derartige Prüfungen immer wieder vorkommen.

In unserem Fall „trimmen“ wir einfach die aktuellen Werte der Steuerelemente – unabhängig davon, ob sich Leerzeichen im jeweiligen Steuerelement befinden oder nicht. Grundsätzlich erfolgt dies nach folgendem Schema:

Wert des Steuerelemente = Trimmen(Wert des Steuerelements)
bzw. etwas weniger abstrakt
txtNachname.Value = Trim$(txtNachname.Value)

Dies ist für alle vier Steuerelemente einzutragen, so dass wir folgende Ereignis-Routinen zur Verfügung haben:

Beispiel:

Option Explicit
 
Private Sub txtNachname_AfterUpdate()
 
    txtNachname.Value = Trim$(txtNachname.Value)
 
End Sub
 
Private Sub txtVorname_AfterUpdate()
 
    txtVorname.Value = Trim$(txtVorname.Value)
 
End Sub
 
Private Sub txtStrasse_AfterUpdate()
 
    txtStrasse.Value = Trim$(txtStrasse.Value)
 
End Sub
 
Private Sub txtOrt_AfterUpdate()
 
    txtOrt.Value = Trim$(txtOrt.Value)
 
End Sub

Auf diese Weise stellen wir sicher, dass die eingetragenen Daten „sauber“ sind; dies ist u.a. dann relevant, wenn die Daten in Datenbanken abgespeichert werden.