Avatar billede bamsen Novice
28. september 2001 - 13:19 Der er 10 kommentarer og
1 løsning

Udregne alder

Jeg er ved at lave et medlemsregister, og hvert år skal man tæller hvormange man har af hvert sit aldersgruppe, så jeg vil gerne have den til at kunne regne alder ud fra datofelt, f.eks. har jeg et datofelt, hvor man skriver fødselsdato samt et datofelt med den dato man vil regne ud fra, og så angive værdien på den 3. felt med alderen, hvordan gør man det?
28. september 2001 - 13:33 #1
Denne funktion skulle give dig alderen:

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


Eks i en ubundet tekstboks:
=Alder([Fødselsdato])

eller

Msgbox Alder(#1-10-1975#)

/Thomas
www.makeiteasy.dk
Avatar billede bamsen Novice
28. september 2001 - 14:05 #2
Undskyld, men jeg er ikke 100% inde på hvordan Access fungerer, skal disse funktion indlæses inde ved kodegenerator? Hvis det er korrekt, så kunne jeg ikke få den til at fungere.. Eller er der et anden sted jeg skal indsættet funktionen

Med venlig hilsen
Kenneth Nielsen
28. september 2001 - 14:08 #3
Hej Kenneth,

Du skal lægge koden i et Modul:
-Gå til Moduler og klik på Ny
-Indsæt koden under \"Option Compare Database...\"
-Luk kode-vinduet og gem modulet f.eks. med navnet \"Alder-funktion\" (Den må ikke hedde \"Alder\"!)

HErefter kan du bruge funktionen alle vegne fra. F.eks. en forespøgsel eller en formular.

/Thomas
Avatar billede bamsen Novice
28. september 2001 - 14:46 #4
Ja, så virkede det... Men er ikke helt som jeg ville have det... Den skal godt nok også kunne regne alder ud fra dagens dato, men vil også gerne have den til at regne ud fra den indtastede dato, dvs. hvis jeg gerne vil have alle aldre pr. 31. December 2000, så taster jeg den tal ind, skal jeg bare skifte Date() ud med feltet?

Med venlig hilsen
Kenneth Nielsen
28. september 2001 - 14:49 #5
Så skal den bare se således ud:

Public Function Alder(Dato1 As Date, Dato2 as date) As Integer
    If DateSerial(Year(Dato2 ), Day(Dato), Month(Dato)) > Date Then
        Alder = DateDiff(\"yyyy\", Dato, Dato2 ) - 1
    Else
        Alder = DateDiff(\"yyyy\", Dato, Dato2 )
    End If
End Function

Og bruges f.eks. således:

=Alder([Fødselsdag];#31-12-2000#)

/Thomas
Avatar billede bamsen Novice
28. september 2001 - 14:55 #6
Det vil sige at jeg så både kan have alder ud fra dagens dato, samt den dato som jeg ønsker?
Du har allerede svaret mere end jeg har brug for så du får dine point og tak for de fantantisk hurtige svar...

Med venlig hilsen
Kenneth Nielsen
28. september 2001 - 14:57 #7
Anytime :o)
Avatar billede bamsen Novice
28. september 2001 - 15:07 #8
Hovsa, alle aldre er nu 100, så mon ikke der er en fejl?
28. september 2001 - 15:10 #9
Sorry - pointene er givet! Det er ikke længere muligt at få support på dette spørgsmål!
28. september 2001 - 15:11 #10
Hehe :o)

Jeg opdagede selv lige en fejl. Prøv denne i stedet:

Public Function Alder(Dato1 As Date, Dato2 As Date) As Integer
    If DateSerial(Year(Dato2), Day(Dato1), Month(Dato1)) > Date Then
        Alder = DateDiff(\"yyyy\", Dato1, Dato2) - 1
    Else
        Alder = DateDiff(\"yyyy\", Dato1, Dato2)
    End If
End Function

mvh
Thomas
Avatar billede bamsen Novice
28. september 2001 - 15:12 #11
Tak
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