Veröffentlicht 12. August 200223 j Hallo, wie kann man aus einer Angabe über den Geburtstag berechnen wie alt die enstprechende Person ist? Gruß Daniel
12. August 200223 j Ganz einfach: Dim Gebdat as Date Dim Alter as Integer If Year (now) > Year (Gebdat) Then If Month (now) > Month (Gebdat) Then Alter = Year (now) - Year (Gebdat) Elseif Month (now) = Month (Gebdat) Then If Day (now) >= Day (Gebdat) Then Alter = Year (now) - Year (Gebdat) Elseif Day(now) < Day (Gebdat) Then Alter = Year (now) - Year (Gebdat) - 1 End if Elseif Month (now) < Month (Gebdat) Then Alter = Year (now) - Year (Gebdat) - 1 End if Elseif Year (now) = Year (Gebdat) Then .... dann ist das Alter unter 1 und muß in Monaten angegeben werden... ich denke, den Rest kannst Du selber coden. JayN
12. August 200223 j In dem du das Geburtsjahr vom aktuellen Jahr abziehst. Dabei aber die Datumsformatierung beachtest.
13. August 200223 j Hi! Schau mal bei der Funktion DateDiff nach. Da kannst Du ein Anfangs und Enddatum eingeben und Dir die Zeit in Tagen, Stunden , Minuten oder Sekunden ausrechnen lassen. Gruss
15. August 200223 j Danke! DateDiff hat geholfen! Und wers braucht hier die Syntax die das Alter in Jahren ausgibt: Form_Daten.Alter = DateDiff("yyyy", Form_Daten.GebDatum, Date) Erklärung: Ergebnis = DateDiff("Jahren",Geburtsdatum,Aktuelles Datum) Formatierung des Geburtsdatums: 23.11.1981 Gruß Daniel
24. September 200222 j Hi, CaptainCrash20! Gibt DIR die Funktion DateDiff WIRKLICH das Alter aus? Wie verhält sich die Funktion, wenn die Person (im Endjahr) noch keinen Geburtstag hatte? Probier mal folgendes im VBA-Direktfenster: ?datediff("yyyy",#30/8/2000#,#30/3/2002#) oder in einer Abfrage y_Alter: DatDiff("jjjj";#30.08.00#;#30.03.02#) Die Person ist im März 2002 erst 1 Jahr alt (erst Ende August 2002 wird sie 2 Jahre alt sein) Wenn Du ohne weiteren Aufwand korrekt "1" herausbekommst und nicht "2", wäre ich für Hilfe sehr dankbar!!!
26. September 200222 j wie siehts damit aus? DateDiff("d", #8/30/2000#, #3/30/2002#) / 365 da kommt dann irgendwas mit 1,5... raus. kann man ja dann gerade machen, wenn du unbedingt ganze zahlen brauchst.
27. September 200222 j Hi, Art! Deine Lösung ist ja sehr schön. (Mit int(<Zahl>) bestimme ich die vollendeten Jahre) Eine Unsicherheit bleibt!?: Was ist mit Schaltjahren (w/ /365)? Ich habe dieses spezielle Problem mit VBA folgendermaßen gelöst: Function GanzeJahre(dDatumStart As Date, dDatumZiel As Date) As Long Dim iJahre As Long 'Jahreszahlen voneinander abziehen: '(mehr macht DateDiff bei Jahren auch nicht...!) iJahre = Year(dDatumZiel) - Year(dDatumStart) 'Jahr nicht vollendet: If DateSerial(2000, Month(dDatumStart), Day(dDatumStart)) _ > DateSerial(2000, Month(dDatumZiel), Day(dDatumZiel)) Then iJahre = iJahre - 1 End If GanzeJahre = iJahre End Function Was mich an dieser Stelle interessieren würde: Wie lautet die Definition "Ein Jahr ist vollendet"? Start: 1. Januar 2000 Vollendet am 31.12.2000 oder am 1. Januar 2001?
27. September 200222 j hm, das schaltjahr nimmt der doch automatisch mit oder? und oben sind es tage. ne kleine ungenauigkeit bleibt allerdings. wie siehts denn hiermit aus? Private Sub Command1_Click() Text1.Text = "30.03.2000" Text1.Text = CLng(Date) - CLng(CDate(Text1.Text)) Text1.Text = Text1.Text / 365 End Sub zumindest gibts beim 29. feb der nicht ein schaltjahr ist einen fehler
22. November 201113 j Hi! Also ich habe dasselbe Problem, aber kaum Vorkenntnisse in Access, so dass ich eine extrem ausführliche Beschreibung für die berechnung des Alters bräuchte:P Also was man wo genau eingibt etc., ich wäre für jede Hilfe extremst dankbar!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.