Comment créer deux fonctions pour calculer l’âge en mois et en années dans Access
Article
S’applique à:
Access 2007, Access 2003, Access 2002
Avancé : nécessite des compétences d’experts en codage, en interopérabilité et en multi-utilisateur.
Cet article s’applique à une base de données Microsoft Office Access (.accdb et .mdb) et au projet Microsoft Access (.apd).
Résumé
Cet article explique comment créer deux fonctions que vous pouvez utiliser pour calculer l’âge d’une personne ou d’une chose en fonction d’une date spécifiée.
Remarque
Vous pouvez voir une démonstration de la technique utilisée dans cet article dans l’exemple de fichier Qrysmp00.exe.
Informations supplémentaires
Création des fonctions
Tapez ou collez le code suivant dans un module :
VB
'==========================================================' General Declaration'==========================================================OptionExplicit'*************************************************************' 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) AsIntegerDim varAge As Variant
If IsNull(varBirthdate) then Age = 0: ExitFunction
varAge = DateDiff("yyyy", varBirthDate, Now)
IfDate < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1EndIf
Age = CInt(varAge)
EndFunction'*************************************************************' 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 AsString) AsIntegerDim tAge AsDouble
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1EndIfIf tAge < 0Then
tAge = tAge + 1EndIf
AgeMonths = CInt(tAge Mod12)
EndFunction
Test des fonctions Age() et AgeMonths()
Pour tester les fonctions Age() et AgeMonths(), procédez comme suit.
Important
Les étapes suivantes vous demandent de modifier la date sur votre ordinateur. Veillez à effectuer l’étape 6 pour réinitialiser la date à la date actuelle.
À l’aide de l’outil Date/Heure du Panneau de configuration, notez la date actuelle, puis définissez la date sur le 3 juin 2001.
Ouvrez un module ou créez-en un.
Dans le menu Affichage, cliquez sur Fenêtre Exécution.
Supposons que la date de naissance de votre ami était le 15 novembre 1967 et aujourd’hui est le 3 juin 2001. Tapez la ligne suivante dans la fenêtre Exécution, puis appuyez sur Entrée :
? Âge(« 15/11/67 »)
Notez que Microsoft Access répond avec la valeur 33 (années).
Tapez la ligne suivante, puis appuyez sur Entrée :
? AgeMonths(« 15/11/67 »)
Notez que Microsoft Access répond avec la valeur 6, indiquant que six mois se sont écoulés depuis le dernier anniversaire de cette personne. Votre ami a 33 ans et six mois.
À l’aide de l’outil Date/Heure du Panneau de configuration, réinitialisez la date à la date actuelle que vous avez notée à l’étape 1.
Utilisation des fonctions Age() et AgeMonths()
La procédure suivante explique comment marquer les anciennes commandes en plaçant la valeur d’âge dans un nouveau contrôle.
Dans l’exemple de base de données Northwind.mdb, tapez les fonctions Age() et AgeMonth() dans un nouveau module.
Ouvrez le formulaire Commandes en mode Création et ajoutez un contrôle de zone de texte indépendant.
Tapez la ligne suivante dans la propriété ControlSource du nouveau contrôle de zone de texte :
Affichez le formulaire en mode Formulaire. Notez que l’ancienneté de la commande s’affiche dans le nouveau contrôle de zone de texte.
References
Pour plus d’informations sur les différences de date, dans Visual Basic Editor, cliquez sur Aide de Microsoft Visual Basic dans le menu Aide, tapez la fonction datediff dans l’Assistant Office ou l’Assistant Réponse, puis cliquez sur Rechercher pour afficher l’article.
Souhaitez-vous en savoir plus sur les fonctions de programmation intégrées de Business Central ? Ce module aborde les différentes fonctions disponibles que vous pouvez utiliser lors du développement pour Business Central.
Démontrez que vous avez les compétences nécessaires pour tirer le meilleur parti d’Access 2019 en obtenant la certification d’expert microsoft Office Specialist (MOS).