Hi,
Iam not kidding with you man.See the code which i wrote below and just try on it and you will know what is the difference between using vbNull and Null.What i found is that when you are assigning vbNull to ADATE then it is updating that field with 12/31/1899 but if you are using Null then it is clearing that field.I don't know clearly the difference between these two but the result is varying.You can test with this code

Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DateTest\db1.mdb;Persist Security Info=False"
Set rst = New ADODB.Recordset
rst.Open "Select * from newtable", cnn, adOpenStatic, adLockPessimistic

rst!ADATE = Null ' Here when you assign vbNull then you will notice the difference.
rst.Update