Alter berechnen

Hallo zusammen,

habe mir ein Access-Formular erstellt um Adressen zu verwalten.
Nun möchte ich das Alter berechnen. Habe dazu ein feld mit Geburtsdatum und ein Feld mit Alter.
Habe schon gegoogled und in diversen Foren nachgelesen, komme aber irgendwie nicht klar.
Habe die Formel DatDiff(„jjjj“;[Geburtsdatum];Datum()) gefunden.
Nun habe ich aber keinen Plan wie ich das Formular dazu bekomme das Alter zu berechnen bzw. was ich mit dieser Formel mache und wo ich sie eintrage. Bin noch neu in Access und habe ziemlich wenig Ahnung.
Es wäre super wenn mir das jemand Schritt für Schritt erklären könnte.
Danke schon mal.

Sascha

Moin, Sascha,

rechte Maustaste auf Feld Geburtsdatum, dort Ereignis Geburtsdatum_change auswählen, dann geht das VBA-Fenster auf. Da schreibst Du

 Me!Alter = DatDiff("jjjj";Me!Geburtsdatum;Datum())

hin. So wird Alter immer dann berechnet, wenn sich das Geburtsdatum ändert. Zusätzlich könntest Du in der Hilfe nachschauen, was datdiff so macht.

Me! ist schlicht der Verweis auf das aktuelle Formular, so quasi der Familienname für alle Felder auf dem Formular.

Gruß Ralf

Hallo nochmal,

da kommt dann direkt nach der Eingabe des Codes
„„Fehler beim kompilieren“ Erwartet: Listentrennzeichen oder )“
und der Strichpunkt nach „jjjj“; ist markiert

Sascha

Also, funktioniert mittlerweile.
Nur habe ich ein weiteres Problem:
Der Geburtstag ist am 31.12.1950.
Dann sollte heute als Alter 58 rauskommen.
Es kommt aber schon 59 als Alter heraus.
Werden da nur die Jahre berücksichtigt?
Gibt es eine Möglichkeit, das genauer hinzubekommen?

Vielen Dank für die bisherige Hilfe.

Sascha

Hallo,

schau mal hier:

www.donkarl.com/?FAQ2.7

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo,

wenn ich den code einfüge
Alter=DatDiff(„jjjj“;[Geburtsdatum];Datum())+(Format(Datum();„mmtt“)

Hallo,

wenn ich den code einfüge

WO??

Alter=DatDiff(„jjjj“;[Geburtsdatum];Datum())+(Format(Datum();„mmtt“) der Tipp im Link bezieht sich auf eine Abfrage, in der der Ausdruck als berechnetes Feld stehen sollte:

PersonenAlter: DatDiff(„jjjj“;[Geburtsdatum];Datum())+(Format(Datum();„mmtt“)

Hallo,

Was passt da nicht?

merke:

  • Strichpunkt in Abfragen
  • Komma im VBA-Code

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo,

ich habe den Code bei der LostFocus-Funktion im Feld Geburtstag eingetragen.
Code:
Private Sub Geburtsdatum_LostFocus()
PersonenAlter=DatDiff(„jjjj“;[Geburtsdatum];Datum())+(Format(Datum();„mmtt“)

Hallo,

Private Sub Geburtsdatum_LostFocus()
PersonenAlter=DatDiff(„jjjj“;[Geburtsdatum];Datum())+(Format(Datum();„mmtt“)Me.PersonenAlter = DateDiff(" yyyy", Me.Geburtsdatum, Date) + (Format(Date, " mmdd") mmdd"))

Me. ist das Kürzel für das aktuelle Formular (ich gehe davon aus, dass sich die Felder PersonenAlter und Geburtsdatum dort befinden)

Eckige Klammern sind nur notwendig, wenn es sich um Felder einer Tabelle handelt, die z.B. in einer Abfrage genutzt werden.

Grüße aus Rostock
Wolfgang
(Netwolf)

Vielen Dank, ihr habt mir wirklich super geholfen.
Funktioniert alles bestens.