Whenever you use a date field in the key, the trick is getting the formatting right when you use a where clause on that field. For example, if you say:
Select * From mytable Where dtDate = '01/01/01 1:00 am'
this might fail to return what you want. The reason is the datebase might actually have something like '01/01/01 1:00:00.0010' for the date; it may have fractions of seconds. If you select the date with a query, you won't get the fractional seconds. So then even if you store the date in a date field in VB and then use it in a query, it won't make a match.
One way around this is to avoid using dates in a key, but that often isn't possible or practicle. If you must, try doing your query like this:
Select * From mytable Where Convert(dtDate, varchar(20)) = '01/01/01 1:00 am'
This should work because the Convert function should drop the milliseconds. You can always do more with the Convert fucntion to look at just the parts of the date that matter. Hope this helps.