Alter berechnen

Von: , Frage gestellt am Fr, 4. Dez 2009

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

11 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Alter berechnen

    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

    • Antwort von nach 2 Stunden 0 hilfreich
      Re^2: Alter berechnen

      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

      • Antwort von nach 3 Stunden 0 hilfreich
        Re^3: Alter berechnen

        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

  2. Antwort von nach 6 Stunden 0 hilfreich
    Re: Alter berechnen

    Hallo,

    schau mal hier:


    www.donkarl.com/?FAQ2.7


    Viele Grüße vom Bodensee
    Franz , DF6GL

    PS: Feedback erwünscht!

    • Antwort von nach 2 Tagen 0 hilfreich
      Re^2: Alter berechnen

      Hallo,

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

      werden die Strichpunkte (;) markiert und es erscheint de Fehlermeldung "Fehler beim kompilieren" und Erwartet Listenende ode Trennzeichen

      Was passt da nicht?

      Gruß

      Sascha

      • Antwort von nach 2 Tagen 0 hilfreich
        Re^3: Alter berechnen

        Hallo,



        wenn ich den code einfüge
        WO?? Alter=DatDiff("jjjj";[Geburtsdatum];Datum())+(Format(Datum();"mmtt")<Format([Geburtsdatum];"mmtt"))

        werden die Strichpunkte (;) markiert und es erscheint de
        Fehlermeldung "Fehler beim kompilieren" und Erwartet
        Listenende ode Trennzeichen
        klar, wenn das als Code-Zeile im VBA-Editor steht, dann ist syntaktisch falsch. Weiterhin: Auf Namen wie "Alter" DRINGEND verzichten, weil das ein reserviertes Wort (hat schon andere interne Bedeutung in Access) ist Was passt da nicht?
        --> 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")<Format([Geburtsdatum];"mmtt"))



        oder auf den Steuerelementinhalt eines Textfeldes, das das Alter anzeigen soll.


        =DatDiff("jjjj";[Geburtsdatum];Datum())+(Format(Datum();"mmtt")<Format([Geburtsdatum];"mmtt"))


        Achtung: "="-Zeichen hier nicht vergessen.


        Viele Grüße vom Bodensee
        Franz , DF6GL

        PS: Feedback erwünscht!

        • Antwort von nach 2 Tagen 0 hilfreich
          Re^4: Alter berechnen

          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")<Format([Geburtsdatum];"mmtt"))
          End Sub

          Wie schon gesagt, bin absoluter Anfänger in Access.
          Funktionieren tut es aber nicht...

          Sascha

          • Antwort von nach 2 Tagen 0 hilfreich
            Re^5: Alter berechnen

            Hallo, Private Sub Geburtsdatum_LostFocus()
            PersonenAlter=DatDiff("jjjj";[Geburtsdatum];Datum())+(Format(Datum();"mmtt")<Format([Geburtsdatum];"mmtt"))
            End Sub
            Funktionieren tut es aber nicht...
            es ist schon manchmal kryptisch, wie Access da Ganze eindeutscht.
            Grundsätzlich: in VBA immer den amerikanischen/englischen Syntax nutzen:

            Me.PersonenAlter = DateDiff("yyyy", Me.Geburtsdatum, Date) + (Format(Date, "mmdd") < Format(Me.Geburtsdatum, "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)



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!