Qual é a diferença entre "Null" e "Nothing" no VB6?

Eu tenho um conjunto de registros como este:

Dim rs as Recordset
Set rs as New Recordset

'... a lot of coding ...

if Err.Number <> 0 Then ' oops, something gone wrong!
    If rs.State <> adStateClosed Then rs.Close
    Set rs = Nothing
end if

' I want to evaluate if rs is Nothing, or Null

if rs is Nothing then 
' this doesn't throw errors, and works well :D
end if

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

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

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

Descobri que no VB6 raramente uso "Nulo" (usei para avaliar nomes de esquema de conjunto de registros vazios), mas uso "Nada" para itens como imagens, adodb.connections ou conjuntos de registros. Para seqüências de caracteres eu tenho vbNullString. Eu li que é um ponteiro para uma string nula.

"Nulo" é como um "valor variável desconhecido" e "Nada" é um valor nulo verdadeiro?

questionAnswers(2)

yourAnswerToTheQuestion