Avatar billede bbkdk Seniormester
07. januar 2022 - 08:17 Der er 1 kommentar og
1 løsning

Beregn alder

Jeg har en medlemsdatabase, hvor det er hensigtsmæssigt at kunne beregne et medlems alder (af hensyn til det kommunale tilskud).

Jeg har anvendt denne VBA kode, der egentligt fungerer udmærket:

Public Function GetAge(varAlder, Optional varDateAt)

Dim intYears As Integer, intMonths As Integer

' return date at current date if no second argument
' passed into function
If IsMissing(varDateAt) Then varDateAt = Date

If Not IsNull(varAlder) Then
' get difference in years
intYears = DateDiff("yyyy", varAlder, varDateAt)
' get difference in months
intMonths = DateDiff("m", varAlder, _
DateSerial(Year(varAlder), Month(varDateAt), Day(varDateAt)))
' adjust result if date of birth falls later in year
' than date at which age to be calculated
If varDateAt < DateSerial(Year(varDateAt), Month(varAlder), Day(varAlder)) Then
intYears = intYears - 1
intMonths = intMonths + 12
End If

GetAge = intYears & " year" & _
IIf(intYears <> 1, "s", "") & ", " & _
intMonths & " month" & _
IIf(intMonths <> 1, "s", "")
End If

End Function

Den beregner den korrekte alder i år ud fra dags dato, men viser f.eks. følgende i feltet:

46 years, 12 months (født 12-01-1975)
47 years, 0 months (født 05-01-1975)
64 years, 10 months (Født 23-03-1957)

Men er der nogen der har en løsning på, hvorledes det kan undgås, at der udskrives noget efter alderen i år (dvs. at "years, "antal måneder" og "months" ikke ønskes vist).
Avatar billede bbkdk Seniormester
07. januar 2022 - 08:28 #1
Jeg fandt selv løsningen, idet jeg ændrede den sidste del af koden således:

GetAge = intYears
End If
Avatar billede bbkdk Seniormester
07. januar 2022 - 08:29 #2
Dette kun for at kunne markere en løsning.
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

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