Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

actualisation age

20 réponses
Avatar
mycpi
Bonjour
Quelqu'un pourrait-il me dire s'il est possible lorsque l'on entre une
date dans un controle donn=E9 que l'age d'une personne s'affiche
imm=E9diatement dans une zone texte sur un formulaire et qu'=E0
l'impression de l'=E9tat quelques jours plus tard l'age soit imprim=E9
tel qu'il a =E9t=E9 calcul=E9 ?
Merci

10 réponses

1 2
Avatar
Jessy Sempere [MVP]
Bonjour

Tu trouveras une petite fonction perso ici :
http://access.jessy.free.fr/index.html?Menu=5&Page=Age

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"mycpi" a écrit dans le message de
news:
Bonjour
Quelqu'un pourrait-il me dire s'il est possible lorsque l'on entre une
date dans un controle donné que l'age d'une personne s'affiche
immédiatement dans une zone texte sur un formulaire et qu'à
l'impression de l'état quelques jours plus tard l'age soit imprimé
tel qu'il a été calculé ?
Merci
Avatar
Bonjour

et si entre le moment de la saisie et le moment de l'impression, le gars a
fêté son anniversaire,
tu veux imprimer quel âge, m'ancien ou le nouveau ?

--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------


"mycpi" a écrit dans le message de
news:
Bonjour
Quelqu'un pourrait-il me dire s'il est possible lorsque l'on entre une
date dans un controle donné que l'age d'une personne s'affiche
immédiatement dans une zone texte sur un formulaire et qu'à
l'impression de l'état quelques jours plus tard l'age soit imprimé
tel qu'il a été calculé ?
Merci
Avatar
mycpi
Je préfère imprimer l'ancien car c'est ce jour là que j'ai saisi mes
autres données.
Avatar
Bonjour,

"mycpi" a écrit dans le message de
news:
Je préfère imprimer l'ancien car c'est ce jour là que j'ai saisi mes
autres données.

dans ce cas, il faut stocker l'âge dans un champ de la table :
le contrôle sera activé non, verrouillé oui, aura comme source le champ de
la table
et pour valeur par défaut
= DateDiff("yyyy";TonChampDate, Date()) + (Format(Date(); "mmdd") <
Format(TonChampDate; "mmdd"))


--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------
Avatar
mycpi
Arnaud
J'ai entré ceci dans la valeur par défaut
= DateDiff(";"yyyy";",[Monchampnaissance],[Madatedujour]) +Int (Format(
[Madatedujour],";"mmdd";") <
Format( [Monchampnaissance]"; ") )
et j'ai comme message :
"la syntaxe de l'expression entrée n'est pas correcte, vous avez peut
etre entré un opérande sans opérateur
Peux-tu me dire ce qui ne va pas ?
Merci
Avatar
Bonjour,

oublie la valeur par défaut dans le contrôle, c'est toujours plus compliqué
de trouver la bonne syntaxe et moins souple que les petites procédures
événementielles.

Mettons que le contrôle dans lequel tu saisis la date de naissance s'appelle
[DateNaissance] (et lié à un champ de la table source)

Tu sélectionne les propriétés de ce contrôle, choisis procédure
événementielle sur l'événement Après mise à jour,
puis clique sur les 3 petits points.

Entre les 2 lignes
Private Sub DateNaissance_AfterUpdate()
....
End Sub

tu colles la formule ci-dessous (telle quelle)

Me!Age.value = DateDiff("yyyy", Me![DateNaissance].Value, Date) +
Int(Format(Date, "mmdd") < Format(Me![DateNaissance].Value, "mmdd"))

Ainsi, le champ "Age" de ta table contiendra automatiquement l'age du
capitaine à jour à chaque fois que tu modifiera sa date de naissance

Le controle "Age" du formulaire (lié au champ de la table) n'est pas à
afficher obligatoirement sur le formulaire dans ce cas.

Si tu ne veux renseigner l'age qu'au moment de la saisie et pas en cas de
modif ultérieure, mettre la formule dans l'événement
"sur après insertion" (équivalent valeur par défaut)

ps : évite de mettre ton adresse e-mail en clair sur les forums, sinon des
robots butineurs vont se charger de remplir ta boite de pourriels de toutes
sortes

--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------


"mycpi" a écrit dans
le message de news:
Arnaud
J'ai entré ceci dans la valeur par défaut
= DateDiff(";"yyyy";",[Monchampnaissance],[Madatedujour]) +Int (Format(
[Madatedujour],";"mmdd";") <
Format( [Monchampnaissance]"; ") )
et j'ai comme message :
"la syntaxe de l'expression entrée n'est pas correcte, vous avez peut
etre entré un opérande sans opérateur
Peux-tu me dire ce qui ne va pas ?
Merci
Avatar
mycpi
Arnaud
Merci pour ta réponse, cela fonctionne, mais pas tout à fait comme je
le souhaite, puisque maintenant je n'ai plus que le chiffre des ans qui
s'affiche comment pourrais-je avoir également celui des mois et
l'affichage aa ans mm mois en sachant que malgré le format que j'ai
mis dans le controle, avec ta formule je n'ai que 5(par exemple) qui
est affiché.
Merci
Avatar
Bonjour,

"mycpi" a écrit dans le message de
news:
Arnaud
Merci pour ta réponse, cela fonctionne, mais pas tout à fait comme je
le souhaite, puisque maintenant je n'ai plus que le chiffre des ans qui
s'affiche comment pourrais-je avoir également celui des mois et
l'affichage aa ans mm mois en sachant que malgré le format que j'ai
mis dans le controle, avec ta formule je n'ai que 5(par exemple) qui
est affiché.
Merci



Dans ce cas inutile d'utiliser une formule tirée par les cheveux

voici une fonction plus facile à comprendre, à recopier dans un module nommé
BasDates par exemple :

Function AgeMoisAns(DateReference As Date, DateSaisie As Date) As String
Select Case Month(DateReference) <= Month(DateSaisie)
Case True
AgeMoisAns = DateDiff("yyyy", DateReference, DateSaisie) & " ans
et " & _
Month(DateSaisie) - Month(DateReference) & " mois"
Case False
AgeMoisAns = DateDiff("yyyy", DateReference, DateSaisie) - 1 & "
ans et " & _
Month(DateReference) - Month(DateSaisie) & " mois"
End Select
End Function

et dans ton formulaire, tu écris

Private Sub DateNaissance_AfterUpdate()
Me!Age.value = AgeMoisAns(Me!DateNaissance.Value,Date)
End Sub


ps : le champ age de ta table doit donc être un champ texte

--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------
Avatar
mycpi
Merci Arnaud
Avatar
mycpi
Arnaud
J'ai donc tenté ce que tu m'as indiqué et j'ai comme message :
l'expression après MAJ entrée comme paramètre de la propriété de
type événement est à l'origine d'une erreur. Le membre existe déj à
dans un module objet dont le présent module est dérivé.
Le résultat de l'expression n'est pas le nom d'une macro, le nom d'une
fonction définie par l'utilisateur ou [event procedure]
Une erreur a peut etre été commise lors de l'évaluation d'une
fonction, d'un événement ou d'une macro.
Qu'est ce que cela veut dire ?
Peux tu encore m'aider
Merci
1 2