... und if VarIsNull(SN)
wird niemals False liefer, da SN den falschen Typen hat.
Noch besser ist aber, dass der Fehler, welcher damit abgefangen werden sollte, schon vorher knallt, wenn versucht wird Null an SN zuzuweisen.
Die Frage ist vielmehr, ob der Fehler nicht schon in
SN := SProp.Get_Value;
liegt, wo einer String-Typ-Variablen (SN) ein Ergebnis vom Typ OleVariant zugewiesen wird. Wieso meckert da der Compiler nicht?