if isnull(v(i)) and isnull(w(i)) then debug.print "v(i) w(i) NULL" elseif not isnull(v(i)) and not isnull(w(i)) then if v(i) = w(i) then ... debug.print "v(i) w(i) PAS NULL" else ... end if else .... end if
Dim toto Dim titi toto = Null titi = Null MsgBox IIf(Not IsNull(toto <> titi), toto <> titi, toto <> titi Or IsNull(toto) Or IsNull(titi)) toto = Null titi = "a" MsgBox IIf(Not IsNull(toto <> titi), toto <> titi, toto <> titi Or IsNull(toto) Or IsNull(titi)) toto = "a" titi = Null MsgBox IIf(Not IsNull(toto <> titi), toto <> titi, toto <> titi Or IsNull(toto) Or IsNull(titi)) toto = "x" titi = "a" MsgBox IIf(Not IsNull(toto <> titi), toto <> titi, toto <> titi Or IsNull(toto) Or IsNull(titi)) toto = "a" titi = "a" MsgBox IIf(Not IsNull(toto <> titi), toto <> titi, toto <> titi Or IsNull(toto) Or IsNull(titi))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Command1_Click() Dim toto, titi toto = Null titi = Null MsgBox si_diff(toto, titi) toto = "a" titi = Null MsgBox si_diff(toto, titi) toto = "x" titi = "a" MsgBox si_diff(toto, titi) toto = "a" titi = "a" MsgBox si_diff(toto, titi) End Sub Private Function si_diff(toto, titi) As Boolean On Error Resume Next si_diff = titi <> toto If Err Then si_diff = True On Error GoTo 0 End Function
Une valeur NULL indique que la valeur est inconnue. Une valeur NULL est différente d'une valeur vide ou de zéro. Deux valeurs NULL ne sont pas égales. Les comparaisons de deux valeurs NULL, ou d'une valeur NULL et d'une autre valeur, renvoient le message « inconnu » car la valeur de chaque NULL est inconnue.
private function IsEqual(byval aString1 as string, byval aString2 as string) as boolean if isnull(astring1) then IsEqual = isnull(astring2) elseif isnull(astring2) then IsEqual = false 'sinon on serait passé au dessus else IsEqual (astring1 astring2) endif end function
Seule la dernière msgbox affichera "False" pour constater qu'il n'y a pas de différence.