What is the difference between "Null" and "Nothing" in VB6?

Null is a specific subtype of a Variant. It has no existence outside of the Variant type, and is created to allow a Variant to model a database null value.

Nothing is a value of an Object variable. It essentially is identical to a null pointer, i.e. there is no object.

The following raises an error because "Is" can only be used with Object variables:

if rs is Null then
' this throws an error of "types not compatible"
end if

The following raises an error because an Object variable can never be Null:

if rs = Null then
' this throws an error of "types not compatible"
end if

The following evaluates False because IsNull() takes a Variant argument.

if isNull(rs) then
' never enters here, isNull(rs) evaluates to False
end if

It is equivalent to:

VarType(rs) = vbNull

Tags:

Vb6