VBA Tipp: Funktion zum Prüfen, ob ein Textfeld leer ist

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ein Textfeld oder eine Variable soll daraufhin überprüft werden, ob es/sie leer ist, d.h. keinen sichtbaren Wert enthält.


Das ist z.B. dann der Fall, wenn das Textfeld bzw. die Variable

  • den Wert NULL oder Empty hat.
    Einen Null-Wert kann man in VBA oder in Ausdrücken mit der Funktion IsNull() (IstNull()) ermitteln. In SQL-Ausdrücken ist jedoch die Prüfung mittels IS NULL stilgerechter und auch schneller in der Ausführung.
  • einen Null-String (leere Zeichenfolge, Leerstring) enthält.
    Ein Null-String kann z.B. entstehen, wenn der Benutzer einen Text eingibt, und ihn anschließend wieder löscht. Eine String-Variable kann auch einen Null-String enthalten. Ein Null-String wird durch die IsNull()-Funktion nicht erfasst.
  • nur ein oder mehrere Leerzeichen enthält.
    Das kann bei Feldern vorkommen, die als Steuerelementinhalt einen Ausdruck mit Leerzeichen enthalten,
    z.B. =[Nachname] & " " & [Vorname]. Auch eine String-Variable kann ausschließlich Leerzeichen enthalten.

Lösung

Das leistet die folgende Funktion, die in einem allgemeinen (globalen) Modul gespeichert wird.

Variante 1

Public Function OhneWert(Ausdruck As Variant) As Boolean
 
   ' Quelle: http://www.dbwiki.net/
 
   OhneWert = Len(Trim(Ausdruck & vbNullString)) = 0
 
End Function

Variante 2

Public Function OhneWert(Ausdruck As Variant) As Boolean
 
   ' Quelle: http://www.dbwiki.net/
 
   OhneWert = Trim(Nz(Ausdruck)) = Empty
 
End Function

Aufruf

An Stelle von Me!EinTextfeld kann auch der Name einer Variablen eingesetzt werden.

   ' Auf leeres Feld prüfen
   If OhneWert(Me!EinTextfeld) Then
   ' oder
   If OhneWert(Me!EinTextfeld) = True Then
 
   ' Auf nicht leeres Feld prüfen
   If Not OhneWert(Me!EinTextfeld) Then
   ' oder
   If OhneWert(Me!EinTextfeld) = False Then
 
   ' Prüfen, ob zwei Felder leer sind
   If OhneWert(Me!EinTextfeld) And OhneWert(Me!MeinTextfeld2) Then
 
   ' Prüfen, ob mindestens eines von zwei Feldern leer ist
   If OhneWert(Me!EinTextfeld) Or OhneWert(Me!MeinTextfeld2) Then
Wiki hinweis.png Anmerkung: Die obige Funktion OhneWert() hat mit der VBA-Funktion IsEmpty() (IstLeer()) oder dem Schlüsselwort empty nichts zu tun.