ich möchte mein Programm ein wenig anwenderfreundlicher
gestalten und deshalb bei der Eingabe im Feld Datum prüfen.
Sehr lobenswert! 
Also, wenn die Eingabe nicht dem Format „dd.mm.yyyy“
entspricht, soll eine Fehlermeldung erscheinen.
Hm, also ich nehme an, daß Du ein Access-Formular hast, ein Textfeld enthält, welches an ein Tabellenfeld geknüpft ist, das den Typ Datum hat.
Dann brauchst Du eigentlich gar keinen Code. Alles, was Du machen mußt, ist folgendes:
- Gehe in die Eigenschaften des Textfeldes.
- Gib bei Daten / Eingabeformat ein: 90.90.0099;0;_
- Bei Gültigkeitsmeldung schreibst Du Deine Fehlermeldung rein. (falsch, s.u.)
- Gehe nun in die Tabelle und gucke, ob die Angaben in die Feld-Eigenschaften übernommen wurden. Sonst kannst Du sie dort ergänzen. Um die Hilfe zu konsultieren, drücke in der Zeile Eingabeformat ganz rechts auf die drei Pünktchen. Dann kommt der Assistent, der auch einen Hilfe-Knopf hat. Dort habe ich mir das „90.90.0099;0;_“ auch rausgezogen.
Wenn das Eingabeformat egal ist, dann überlasse es doch einfach Access, darauf zu achten, daß ein richtiges Datum eingegeben wird und lasse das Eingabeformat einfach weg. Wenn Du als Datentyp Datum/Zeit einstellst, wird es bei jeder Eingabe meckern, und zwar so, wie Du es bei Gültigkeitsmeldung definiert hast. … Ehm … ach nein. Das mit der Gültigkeitsmeldung ist falsch. Das geht nur, wenn Du eine Gültigkeitsregel definiert hast (z.B. >37328, was dann nur noch Daten ab morgen akzeptiert). Die 37328 kommt übrigens von MsgBox CLng(Date).
So. Nun noch der Tip, falls Du doch mit der Prozedur arbeiten willst:
Du brauchst das BeforeUpdate-Ereignis:
Private Sub DatumsTextbox\_BeforeUpdate(Cancel As Integer)
Dim dummy As String
dummy = ""
On Error Resume Next
dummy = CDate(Text2.Text)
On Error GoTo 0
If dummy = "" Then
MsgBox "Kein Datum!", vbCritical, "Fehler"
Cancel = True
End If 'dummy = ""
End Sub 'DatumsTextbox\_BeforeUpdate
Das funktioniert aber nur dann, wenn Du in der Tabelle als Datentyp „Text“ definiert hast, denn Access prüft die Eingabe offenbar noch bevor die Prozedur ausgeführt wird.
In der Ereignis-Routine wird nur versucht, die Eingabe in ein Datum zu übersetzen. Das „On Error“ verhindert dabei das Meckern, falls es nicht klappt. In diesem Falle bleibt „dummy“ allerdings leer (""). Anderenfalls wird das Datum reingeschrieben (z.B. „13.03.02“). Wenn „Cancel“ auf True gesetzt wird, wird das Update des Textfeldes abgebrochen. Man kommt also nur wieder raus, indem man was richtiges eingibt - kleiner Nachteil 
Hilft Dir das weiter oder war das zu kompliziert?
Kristian