Mi sono imbattuto in questo vecchio post, cercando di risolvere lo stesso problema.

Io ho appena risolto usando la conversione della data testuale in numero a precisione doppia.

WHERE (CDbl(Cdate('12/03/1985 00:10')) < CDbl(cDate('12/03/1985 01:00')))

restituisce True.

WHERE (CDbl(Cdate('12/03/1985')) = CDbl(cDate('12/03/1985 01:00')))

restituisce False.

Se CampoData è di tipo Date/Time e contiene (in Italiano) 12/03/1985 01:00, ossia #03/12/1985 01:00AM#, allora

WHERE ([CampoData] = CDbl(cDate('12/03/1985 01:00')))

restituisce False.

Occorre fare attenzione alla localizzazione e ai valori nulli, ma il concetto è: ottenere il valore double della data (che è un double 8 byte già di per sè, con intero che identifica il giorno e la parte decimale la frazione di giorno).
Il valore double della data può essere confrontato direttamente con un campo data, con risoluzione ben oltre il secondo.

Per costruire il criterio in VBA, ecco un esempio funzionante in Access su una tabella Fatture con campo [DataGenerazioneFattura] tipizzato in data/ora :


codice:
'DateValue non prevede restituzione di orario, occorre escamotage per confrontare date comprendenti l'orario

Dim vData as Variant
Dim dblData as Double

'forzo la data a titolo di esempio
vData = #12/12/2012 12.12.12#

If IsNull(vData) Then
    'uscita dalla routine
    'il test è superfluo in questo esempio, ma non laddove
    'il valore di vData provenga da un controllo
Else
    dlData = CDbl(vData)
End If

    DoCmd.RunSQL ("DELETE FROM Fatture WHERE ([DataGenerazioneFattura] = " & Str(dlData) & ");") ' Uso Str xé restituisce stringa numerica con "." decimale
End If

Saluti