Hi!
Ich habe vor ein paar Tagen einen recht eigenartigen Fehler in einem Programm gefunden, der zu einer sehr umständlichen Prüfung führte.
Die Aufgabe besteht darin, einen Datensatz in einer Vergleichstabelle zu suchen und zu prüfen, ob sich der Satz in einem beliebigen Feld verändert hat.
Das sah ursprünglich so aus:
For lCount = 0 to tdTd.Fields.Count -1
If rsA.Fields(lCount) rsB.Fields(lCount) Then
[…]
End If
Next lCount
Interessanterweise war das Resultat der If-Abfrage immer True,
wenn eines der beiden geprüfen Felder NULL war, das andere aber einen Wert enthielt. Nun mußte ich diese absolut umständliche ISNULL-Prüfung einbauen:
If rsA.Fields(lCount) rsB.Fields(lCount) or (IsNull(rsA.Fields(lCount) and Not IsNull(rsB.Fields(lCount)) or (Not IsNull(rsA.Fields(lCount) and IsNull(rsB.Fields(lCount)) Then
Kennt jemand einen besseren Programmierweg?
Gruß
Siegfried