Comment créer deux fonctions pour calculer l’âge en mois et en années dans Access
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 :
'==========================================================
' 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
Test des fonctions Age() et AgeMonths()
Pour tester les fonctions Age() et AgeMonths(), procédez comme suit.
Importante
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 dans 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.
En utilisant l’outil Date/Heure dans 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 :
=Age([OrderDate]) & " yrs " & AgeMonths([OrderDate]) & " mos »
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 le Rédacteur Visual Basic, cliquez sur Aide de Microsoft Visual Basic dans le menu Aide, tapez la fonction datediff dans le Assistant Office ou l’Assistant Réponse, puis cliquez sur Rechercher pour afficher la rubrique.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour