OVH Cloud OVH Cloud

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
Bonjour,

as tu bien sélectionné l'événement après mise à jour du contrôle dans lequel tu effectues la saisie (date) et non l'événement sur
apres mise a jour du contrôle qui contient l'appel de la fonction (age) ?

--
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 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
Avatar
mycpi
Arnaud
Oui, j'ai bien sélectionné l'événement après mise à jour du
contrôle dans lequel je saisis la date au moment où je veux que
l'âge s'affiche.
Avatar
re

Dans ce cas, colle nous le code exact que tu as mis pour remplir le champ age,
et rappelle nous également les noms exacts des champs de ton formulaire pour qu'on puisse comprendre où ça coince

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

"mycpi" a écrit dans le message de news:

Arnaud
Oui, j'ai bien sélectionné l'événement après mise à jour du
contrôle dans lequel je saisis la date au moment où je veux que
l'âge s'affiche.
Avatar
mycpi
Mes champs s'appellent
NAISS
DATE_VA
AGE
Comme vous me l'avez suggéré j'ai créé un module
BasDates :
Function AgeMoisAns(NAISS As Date, DATE_VA As Date) As String
Select Case Month(NAISS) <= Month(DATE_VA)
Case True
AgeMoisAns = DateDiff("yyyy", NAISS, DATE_VA) & " ans et "
& Month(DATE_VA) - Month(NAISS) & " mois"
Case False
AgeMoisAns = DateDiff("yyyy", NAISS, DATE_VA) - 1 & "ans et
" & Month(NAISS) - Month(DATE_VA) & " mois"
End Select
End Function
Puis dans la propriété de DATE_VA
Aprés MAJ
J'ai appuyé sur les ...
Private Sub DATE_VA_AfterUpdate()
Me!AGE.Value = AgeMoisAns(Me!DATE_VA.Value, Date)
End Sub
Voilà et merci de m'aider encore, je n'en reviens pas que vous ne
soyez toujours pas dégoûtés de ma nullité!
Merci
Avatar
Rebonsoir

il n'était pas nécessaire de modifier la fonction que j'avais proposée.
En mettant dans la fonction les mêmes noms de variables que les champs du formulaire,
on provoque un conflit.

quand on écrit

Private Sub DATE_VA_AfterUpdate()
Me!AGE.Value = AgeMoisAns(Me!DATE_VA.Value, Date)
End Sub

on exécute la fonction en attribuant la valeur du champ date_va au premier argument de la fonction et la date du jour au second
argument de la fonction.

ces arguments peuvent d'appeler toto et tata, peu importe mais surtout pas les noms des champs de la table liée ou les noms des
controles du formulaire.

Essaye de remplacer la fonction modifiée Function AgeMoisAns(NAISS As Date, DATE_VA As Date)
par celle que j'avais postée (telle quelle) dans le module, le conflit devrait disparaitre et ça devrait fonctionner

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


"mycpi" a écrit dans le message de news:

Mes champs s'appellent
NAISS
DATE_VA
AGE
Comme vous me l'avez suggéré j'ai créé un module
BasDates :
Function AgeMoisAns(NAISS As Date, DATE_VA As Date) As String
Select Case Month(NAISS) <= Month(DATE_VA)
Case True
AgeMoisAns = DateDiff("yyyy", NAISS, DATE_VA) & " ans et "
& Month(DATE_VA) - Month(NAISS) & " mois"
Case False
AgeMoisAns = DateDiff("yyyy", NAISS, DATE_VA) - 1 & "ans et
" & Month(NAISS) - Month(DATE_VA) & " mois"
End Select
End Function
Puis dans la propriété de DATE_VA
Aprés MAJ
J'ai appuyé sur les ...
Private Sub DATE_VA_AfterUpdate()
Me!AGE.Value = AgeMoisAns(Me!DATE_VA.Value, Date)
End Sub
Voilà et merci de m'aider encore, je n'en reviens pas que vous ne
soyez toujours pas dégoûtés de ma nullité!
Merci
Avatar
mycpi
Re
OK j'avais pas tout compris ! J'essaie et merci encore
a+
Avatar
mycpi
Re
Ca ne marche toujours pas !
Ai-je bien compris ?
J'ai remplacé la fonction mais aussi la procédure évenementielle
après MAJ j'aurais pas dû?
Je comprends pas tout !
Excusez-moi
Avatar
Bonjour

la procédure événementielle a été remplacée par quoi ?
en théorie elle aurait du marcher


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


"mycpi" a écrit dans le message de news:

Re
Ca ne marche toujours pas !
Ai-je bien compris ?
J'ai remplacé la fonction mais aussi la procédure évenementielle
après MAJ j'aurais pas dû?
Je comprends pas tout !
Excusez-moi
Avatar
mycpi
Bonjour Arnaud

Dans mon module j'ai collé ceci :

Et je suis étonnée car lorsque je l'ai collé, la partie de "et à
mois" dans Case True est rouge et celle de Case False de "ans jusqu'à
mois" aussi

Est-ce normal ?


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

Dans l'événement après mise à jour de la date de saisie j'ai coll é
:
Private Sub DATE_VA_AfterUpdate()
Me!AGE.Value = AgeMoisAns(Me!DateSaisie.Value, Date)
End Sub

Merci encore,
à+
Avatar
Eric
Bonsoir Marie-Christine,

Tu as un problème de retours à la ligne intempestifs dûs à l'interface
Web. Copies et colles en lieu et place de la fonction donnée par Arnaud,
celle-ci reformatée pour l'interface Web :

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

tu ne devrais plus avoir de ligne rouge.

Bonjour Arnaud

Dans mon module j'ai collé ceci :

Et je suis étonnée car lorsque je l'ai collé, la partie de "et à
mois" dans Case True est rouge et celle de Case False de "ans jusqu'à
mois" aussi

Est-ce normal ?



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

1 2