VBA Tipp: Standardwerte in Null-Werte wandeln

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte einem Tabellenfeld statt eines ungültigen Wertes (z.B. Leerstring) den Wert Null zuweisen.

Lösung

Das geht mit einer Umkehrfunktion zu der VBA-Funktion Nz (Umwandlung von Null in einen gültigen Feldwert).
Sie wird in einem globalen Modul hinterlegt.

Public Function zN(ByVal Wert As Variant, _
                   Optional ByVal WertZuNull As Variant = "" _
                   ) As Variant
 
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 If Wert = WertZuNull Then
   zN = Null
 Else
   zN = Wert
 End If
 
End Function

Parameter

  • Wenn das Argument Wert den Wert des Arguments WertZuNull annimmt, gibt die zN-Funktion Null zurück. Ansonsten gibt die Funktion den Wert des Arguments Wert zurück.
  • Der Standardwert des optionalen Arguments WertZuNull ist ein Leerstring (leere Zeichenfolge).


Aufruf

z.B. Zuweisung eines Feldinhalts im Recordset, Leerstrings werden in Null umgewandelt

 Dim rs As DAO.Recordset
 
 Set rs = CurrentDb.OpenRecordset("MeineTabelle", dbOpenDynaset)
 
 '...
 rs.Edit
 rs!MeinFeld = zN(Trim(Me!MeinFormularfeld.Value))
 rs.Update
 '...

Wiki-Links