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).