Verfijning formule voor leeftijdgroepering in query

JohanRVT

Gebruiker
Lid geworden
2 mrt 2011
Berichten
555
Ik gebruik volgende formule in een query om een rapport te genereren met daarin o.a. de verblijfsduur van onze bewoners in het WZC maar ook de leeftijd van de bewoners gegroepeerd in leeftijdsgroepen per 10 jaar om dan op 't einde van het rapport tot een procentuele verdeling van die groepen te komen in de totale populatie.
Code:
Leeftijdsgroep: (DateDiff("yyyy";[Bewoner].[Geboortedatum];Date())\10)*10
Die code is echter nu niet fijn genoeg (of juist) aangezien er bv mensen geboren in 1925 eens wel en dan weer niet bij de 100 leeftijdsgroep worden gezet in verhouding tot de huidige datum. Graag een voorstel wat te gebruiken.

1751467925823.png
Zo kom je tot een overzicht waar er al 2 100 jarigen getoond worden terwijl er duidelijk nog maar één 100 jaar is.
1751468073105.png
 

Bijlagen

  • 1751467816055.png
    1751467816055.png
    11,2 KB · Weergaven: 3
Je kunt natuurlijk ook "gewoon" de leeftijd berekenen. Deze functie plukte ik net van internet:
Code:
Function Leeftijd(Geboortedatum As Date) As Integer
  Dim vandaag As Date
  vandaag = Date
  Leeftijd = DateDiff("yyyy", Geboortedatum, vandaag)

  ' Controleer of de verjaardag dit jaar al is geweest
  If Month(Geboortedatum) > Month(vandaag) Or _
     (Month(Geboortedatum) = Month(vandaag) And Day(Geboortedatum) > Day(vandaag)) Then
    Leeftijd = Leeftijd - 1
  End If
End Function
 
Die functie kan een stuk makkelijker, en zonder het gebruik van een (in mijn ogen) nutteloze variabele.
Code:
Function Leeftijd(Geboortedatum As Date) As Integer
     Leeftijd = DateDiff("yyyy", Geboortedatum, Date) _
          + (Format(Geboortedatum,"mmdd") > Format(Date,"mmdd")
End Function

Waarom de variabele nutteloos is? Als jij mij kan uitleggen waarom je een variabele zou moeten gebruiken waarvan de naamlengte langer is als de functienaam die hij definieert(7 letters om 4), dan geef ik je helemaal gelijk. Maar ik denk niet dat je dat kan :).
 
Terug
Bovenaan Onderaan