Nessun mistero.

Se devi fare un confronto tra date devi farlo utilizzando lo stesso formato.

oggi = Date

è diverso da

Data=#" & data1 & "#"

Perchè viene sempre inclusa anche la parte Time.
Ricorda che un campo di tipo data è in realtà un campo DateTime.

Quindi
oggi = Date sarà 11/09/2008

mentre il database si aspetta un tipo DateTime:
11/09/2008 10.20.37
Poco importa come lo vedi tu nel database, il valore interno è sempre DateTime completo, perchè non si può scindere la parte Time da quella Date, ma si può visualizzare ed analizzare solo la parte che serve, ma occorre istruire il motore del DB.
Inoltre, il formato interno delle date potrebbe essere diverso (ed in genere lo è) perchè molti database usano il formato americano "MM/DD/YYYY", e se tu gli passi il formato italiano "DD/MM/YYYY" è ovvio che non trova corrispondenza.

Per cui dovresti fare così:

codice:
Dim sData As String
sData = Format(Data1, "MM/DD/YYYY")
SELECT Titolo FROM APPUNTAMENTI WHERE (Data=#" & sData & "#)"
Ciao