Avatar billede 3xa Nybegynder
18. marts 2002 - 10:31 Der er 21 kommentarer og
2 løsninger

Datoberegning af alder

Når jeg laver en Datediff("y";[Fødselsdato];[Dags_Dato]), regner den næsten alderen ud. Dvs. den er ikke præcis - hvordan kan det være og kan man lave en funktion der præcist udregner alder. Der skal jo ikke stå at jeg er 26 idag, hvis jeg først er det i morgen!
Avatar billede nih Novice
18. marts 2002 - 10:34 #1
Avatar billede 3xa Nybegynder
18. marts 2002 - 10:34 #2
Tusinde tak!
Avatar billede terry Ekspert
18. marts 2002 - 10:36 #3
I havent checked this found it laying around...

    Public Function Alder(Dato As Date) As Integer
    If DateSerial(Year(Date), Day(Dato), Month(Dato)) > Date Then
        Alder = DateDiff("yyyy", Dato, Date) - 1
    Else
        Alder = DateDiff("yyyy", Dato, Date)
    End If
End Function
Avatar billede nih Novice
18. marts 2002 - 10:40 #4
Public Function Alder(Dato1 As Date, Dato2 As Date) As Integer
  If DateSerial(Year(Dato2), Day(Dato1), Month(Dato1)) > Dato2 Then
        Alder = DateDiff("yyyy", Dato1, Dato2) - 1
  Else
        Alder = DateDiff("yyyy", Dato1, Dato2)
  End If

Der er da fejl i Thomas's funktion:
If DateSerial(Year(Dato2), Day(Dato1), Month(Dato1)) > Dato2 Then
'date' skal være 'dato2'

Niels
Avatar billede 3xa Nybegynder
18. marts 2002 - 10:42 #5
Niels kan du sætte den ind på en knap?
Avatar billede nih Novice
18. marts 2002 - 10:50 #6
I et modul skriver du funktionen alder.

I en formular på en knap's onKlik hændelse kan du kalde funktionen på følgende måde:

Private Sub Kommandoknap1_Click()
  MsgBox Alder(#4/1/1969#, Date)
End Sub

Niels
Avatar billede nih Novice
18. marts 2002 - 10:56 #7
Fordelen ved at lægge funktionen i et modul er at du også kan kalde den fra en forespørgsel.
Opret et nyt felt i forespørgsels gitteret:

antalÅr : alder([DatoFelt];Date())

Niels
Avatar billede 3xa Nybegynder
18. marts 2002 - 10:58 #8
>Det kan jeg slet ikke finde ud af.... Kan man ikke bare lave den direkte på knappen?
Avatar billede nih Novice
18. marts 2002 - 11:01 #9
3xa -> hvad hedder dit dato felt på formularen, som du vil lave beregningen på ???
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:03 #10
Jeg har et felt der hedder [Fødselsdato] og et der hedder [Ansat pr], og alderen skal proppes ind i [Alder ved ansættelse]....
Avatar billede nih Novice
18. marts 2002 - 11:14 #11
Private Sub Kommandoknap1_Click()
dim dato1 as date, dato2 as date
dim antalAar as integer

dato1 = me.[Fødselsdato]
dato2 = me.[Ansat pr]

  If DateSerial(Year(Dato2), Day(Dato1), Month(Dato1)) > Dato2 Then
        antalAar = DateDiff("yyyy", Dato1, Dato2) - 1
  Else
        antalAar = DateDiff("yyyy", Dato1, Dato2)
  End If

msgbox antalAar

end sub

ADVARSEL : uprøvet kode ;)
Niels
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:21 #12
Den virker meget godt, men jeg har fundet ud af at den bytter om på måned og da, så den 10. juli 2002 hedder 07-10-02, hvorfor?
Avatar billede nih Novice
18. marts 2002 - 11:25 #13
Hvordan står dine 'international' dato indstillig i kontrolpanel ?
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:29 #14
Den er god nok...?
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:33 #15
Det må være koden du gav mig, for felterne er indstillet til at vise long date format, og de er gode nok... Ellers er det min Access der trænger til lidt ferie ;-)
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:37 #16
OK, jeg har den - jeg byttede bare om på Month og Day i dit script, og det virkede PERFEKT!!!! Nåh, hvordan får jeg det så ind i feltet [Alder ved ansættelse] i stedet for at poppe op i en MsgBox?
Avatar billede nih Novice
18. marts 2002 - 11:42 #17
'msgbox antalAar' skiftes ud med

me.Alder_ved_ansættelse = antalAar

Niels
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:45 #18
Så siger jeg tusinde tak for hjælpen - og tålmodigheden....
Avatar billede nih Novice
18. marts 2002 - 11:47 #19
3xa -> Hvis du får mod på at lave en public function 'Alder' i et moddul, kunne du gøre det meget nemmere.

textboxens kontrolelementkilde kunne angives til
=Alder([Fødselsdato];[ansat pr])

Niels
Avatar billede 3xa Nybegynder
18. marts 2002 - 11:50 #20
Ja - jeg bliver vist nødt til at udvide min horisont, med lidt moduleri...
Avatar billede terry Ekspert
18. marts 2002 - 13:47 #21
3xa>can you give me a status on this question?
Avatar billede 3xa Nybegynder
18. marts 2002 - 13:49 #22
Naåhhh ja, nih fik den til at virke perfekt!
Avatar billede terry Ekspert
18. marts 2002 - 14:17 #23
OK!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester