Geavanceerd: vereist professionele codering, interoperabiliteit en vaardigheden voor meerdere gebruikers.
Dit artikel is van toepassing op een Microsoft Office Access-database (.accdb en .mdb) en op Microsoft Access-project (.apd
).
In dit artikel wordt beschreven hoe u twee functies maakt die u kunt gebruiken om de leeftijd van een persoon of ding te berekenen op basis van een opgegeven datum.
Notitie
U ziet een demonstratie van de techniek die in dit artikel wordt gebruikt in het voorbeeldbestand Qrysmp00.exe.
Typ of plak de volgende code in een module:
'==========================================================
' General Declaration
'==========================================================
Option Explicit
'*************************************************************
' FUNCTION NAME: Age()
'
' PURPOSE:
' Calculates age in years from a specified date to today's date.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birth date).
'
' RETURN
' Age in years.
'
'*************************************************************
Function Age (varBirthDate As Variant) As Integer
Dim varAge As Variant
If IsNull(varBirthdate) then Age = 0: Exit Function
varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function
'*************************************************************
' FUNCTION NAME: AgeMonths()
'
' PURPOSE:
' Compliments the Age() function by calculating the number of months
' that have expired since the last month supplied by the specified date.
' If the specified date is a birthday, the function returns the number of
' months since the last birthday.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birthday).
'
' RETURN
' Months since the last birthday.
'*************************************************************
Function AgeMonths(ByVal StartDate As String) As Integer
Dim tAge As Double
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If
If tAge < 0 Then
tAge = tAge + 1
End If
AgeMonths = CInt(tAge Mod 12)
End Function
De functies Age() en AgeMonths() testen
Voer de volgende stappen uit om de functies Age() en AgeMonths() te testen.
Belangrijk
In de volgende stappen wordt u gevraagd de datum op uw computer te wijzigen. Zorg ervoor dat u stap 6 hebt voltooid om de datum opnieuw in te stellen op de huidige datum.
Met het hulpmiddel Datum/tijd in het Configuratiescherm noteert u de huidige datum en stelt u de datum in op 3 juni 2001.
Open een module of maak een nieuwe module.
Klik in het menu Beeld op Direct venster.
Stel dat de geboortedatum van je vriend 15 november 1967 was en dat het vandaag 3 juni 2001 is. Typ de volgende regel in het venster Direct en druk op Enter:
? Leeftijd("15-11-67")
Microsoft Access reageert met de waarde 33 (jaren).
Typ de volgende regel en druk op Enter:
? AgeMonths("15-11-67")
Houd er rekening mee dat Microsoft Access reageert met de waarde 6, wat aangeeft dat er zes maanden zijn verstreken sinds de laatste verjaardag van deze persoon. Je vriend is 33 jaar en zes maanden oud.
Stel de datum opnieuw in op de huidige datum die u in stap 1 hebt genoteerd met behulp van het hulpprogramma Datum/tijd in het Configuratiescherm.
De functies Age() en AgeMonths() gebruiken
In de volgende procedure wordt uitgelegd hoe u oude orders markeert door de leeftijdswaarde in een nieuw besturingselement te plaatsen.
Typ in de voorbeelddatabase Northwind.mdb de functies Age() en AgeMonth() in een nieuwe module.
Open het formulier Orders in de ontwerpweergave en voeg een niet-afhankelijk tekstvakbesturingselement toe.
Typ de volgende regel in het besturingselement ControlSource van het besturingselement voor het nieuwe tekstvak:
=Age([OrderDate]) & " yrs " & AgeMonths([OrderDate]) & " mos"
Bekijk het formulier in de formulierweergave. Houd er rekening mee dat de leeftijd van de volgorde wordt weergegeven in het nieuwe tekstvakbesturingselement.
Voor meer informatie over datumverschillen klikt u in Visual Basic Editor op Microsoft Visual Basic Help in het menu Help, typt u de functie dateediff in de Office-assistent of de antwoordwizard en klikt u vervolgens op Zoeken om het artikel weer te geven.