automatisch ophogen van datumwaarden

Status
Niet open voor verdere reacties.

meinco

Gebruiker
Lid geworden
25 jan 2008
Berichten
9
In mijn database houd ik leeftijd en aantaljaren lid bij.
Dit jaar werd het, evenals vorig jaar, niet automatisch opgehoogd en moet ik bij elk lid de geboorte datum verwijderen en weer opnieuw invoeren, pas dan geeft het de juiste waarden. in de velden "Leeftijd" en "Oudste_lid"
Ik heb de gebeurtenisprocedure ingevuld bij "Na bijwerken"
Heeft iemand een optie hoe ik dat kan aanpassen.
meinco@gmail.com

Option Compare Database

Private Sub Geboortedatum_AfterUpdate()
Leeftijd = DateDiff("yyyy", [Geboortedatum], Date)
End Sub

Private Sub LidSinds_AfterUpdate()
oudste_lid = DateDiff("yyyy", [LidSinds], Date)
End Sub


Private Sub LidSinds_BeforeUpdate(Cancel As Integer)

End Sub
 
Een vraagje: waarom zou je leeftijden opslaan in een tabel? De grap van een leeftijd is nu juist dat die elke dag anders is. En veranderende gegevens slaan we niet op, maar berekenen we als we ze nodig hebben. Dus je probleem is eigenlijk geen probleem...
De manier waarop je de leeftijd berekent overigens wel, want die klopt niet. Door alleen het jaartal in de berekening op te nemen zul je toch meestal de verkeerde datum te zien krijgen... Onderstaande functie berekent 'm wel goed.

Code:
Function Leeftijd(GeboorteDatum As Variant) As Integer
Dim varAge As Variant
    'Bij leeg, dan nog geen verjaardag, dus 0...
    If Nz(GeboorteDatum, 0) = 0 Then Leeftijd = 0: Exit Function
    'Leeftijd uitrekenen
    varAge = DateDiff("yyyy", GeboorteDatum, Date)
    If Date < DateSerial(Year(Date), Month(GeboorteDatum), Day(GeboorteDatum)) Then
        varAge = varAge - 1
    End If
    Leeftijd = CInt(varAge)

End Function

Hetzelfde geldt overigens voor het aantal jaar dat iemand lid is...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan