Jahr-2000-Problem in Access mit Lebensalterberechnung

In der WIN 9/96 habe ich eine Formel zur Berechnung des Lebensalters in Access gefunden. Leider funktioniert Ihre Formel aber nur bis zum Alter von 68 Jahren. Sobald jemand 69 Jahre alt ist, berechnet Access -31 Lebensjahre, und ich komme nicht dahinter, warum das so ist. Haben Sie eine Lösung für mich?

Unsere Formel ist in diesem Fall unschuldig. Der Verursacher ist die Datumsfunktion von Access 97, die Microsoft wohl eher zukunftsweisend programmieren wollte, dadurch aber Geburtsjahrgänge vor 1930 unfreiwillig verjüngt. Wenn Sie einer Variable ein Datum vor 1930 ohne Jahrhun- dert-Angabe zuweisen, verlegt Access das Datum automatisch ins nächste Jahrhundert. Dazu ein Beispiel, das Sie im Direktfenster von Access testen können. Aktivieren Sie das Daten- bank-Fenster und rufen Sie die Be- fehle Einfügen – Modul und Ansicht – Testfenster auf.
datum = #1 jan 30#
? datum
1.1.1930
datum = #9 jan 29#
? datum
9.1.2029
datum = #9 jan 1929#
? datum
9.1.1929
Das Beispiel zeigt, daß Access Jahreszahlen ohne Jahrhundert-Angabe von 0 bis 29 automatisch ins nächste Jahrtausend verlegt und als 2000 bis 2029 interpretiert. Wenn Sie bei einem 69jährigen, der 1929 geboren ist, das Alter von –31 Jahren herausbekommen, berechnet Access nicht 98-29, sondern 1998-2029.

Um dieses Problem zu lösen, soll- ten Sie alle Datumsangaben in Ihrer Datenbank durch Jahrhundert- Angaben ergänzen. Achten Sie darauf, jede Jahreszahl wirklich vierstellig einzugeben. Für die Darstellung des Datums können Sie später trotzdem das Format Datum, kurz mit zwei Jahreszahlen verwenden.

Um die vierstellige Eingabe der Jahreszahl zu erzwingen, empfiehlt sich folgende Eingabemaske, die Sie in der Entwurfsansicht der Tabelle für Datumsfelder definieren: 99.99.0000;0. Diese Eingabemaske verlangt mit dem Platzhalter 9 nach Zahlen für die Eingabe von Tag und Monat und erzwingt dann die Eingabe einer vierstelligen Jahreszahl.