VBA Tipp: Leere Zeichenfolge in anderen Wert konvertieren

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Als Gegenstück zur Access-internen Nz-Funktion möchte ich einen Null-String (Leer-String, Leere Zeichenfolge) in den Wert Null oder einen anderen Wert konvertieren.

Lösung

Das geht mit folgender Funktion, die in einem globalen Modul hinterlegt wird.

Parameter

  • Wenn der Wert des Arguments Wert eine leere Zeichenfolge ist, gibt die Zn-Funktion den Wert des Arguments WertWennLeer zurück. Ansonsten wird der Wert des Arguments Wert zurückgegeben.
  • Wenn das optionale Argument WertWennLeer nicht angegeben wird, gibt die Funktion Null zurück.
Public Function Zn(Wert As Variant, _
                   Optional WertWennLeer As Variant = Null) As Variant
 
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   If Wert = vbNullString Then
      Zn = WertWennLeer
   Else
      Zn = Wert
   End If
 
End Function

Aufruf

   Dim strText As String
 
   'Leerstring umwandeln in Null
   Debug.Print Zn(strText) 'ergibt: Null
 
 
   ' Wenn das dem gebundenen Formularfeld 'Artikelname' zugeordnete Tabellenfeld
   ' auf die Eigenschaft "Leere Zeichenfolge: Nein" eingestellt ist
   Me.Artikelname = Zn(strText)
 
 
   'Leerstring umwandeln in 0
   Debug.Print Zn(strText, 0) 'ergibt: 0
 
 
   'Leerstring umwandeln in geschütztes HTML-Leerzeichen
   Debug.Print Zn(strText, " ")  'ergibt:  
 
 
   'Leerstring umwandeln in Meldung
   Debug.Print Zn(strText, "Eingabe fehlt") 'ergibt: Eingabe fehlt

Wikilinks