¿Cuál es la diferencia entre "Nulo" y "Nada" en VB6?

Tengo un 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

Descubrí que en VB6 rara vez uso "Nulo" (lo usé para evaluar nombres de esquemas de conjuntos de registros vacíos), pero uso "Nada" para cosas como imágenes, conexiones de adodb o conjuntos de registros. Para cadenas tengo vbNullString. Leí que es un puntero a una cadena nula.

¿Es "Nulo" como un "valor variable desconocido" y "Nada" un verdadero valor nulo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta