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

MAJ d'un champ dans un formulaire

6 réponses
Avatar
Pierre Dumas
Bonjour tout le monde

Une question toute simple dont je ne trouve pas la reponse.

Une table avec 3 champs (noms, prenoms, madate).
Un formulaire sur cette table.

Ma question :
Comment renseigner le champ madate par la date du jour=20
quand on change un des deux autres champs ?

Ce que j'ai fait :
sur l'evenement apres MAJ du formulaire j'ai mis le code=20
suivant :
Screen.ActiveForm.Controls("madate").Value =3D Date
Cela marche assez bien, sauf que lorsque je veux changer=20
d'enregistrement, Access se bloque. je dois appuyer sur=20
Echap avant de pouvoir changer d'enregistrement.

Quelqu'un qui serait revenu de cong=E9 (ou pas encore parti)=20
aurait-il une solution ?

Pierre

6 réponses

Avatar
Patrice
Salut

au lieu de mettre ta procédure dans l'evenement du
formulaire, mets la dans le changement des controls noms
et prénoms de la facon suivante:

me!MaDate = date()

Ceci dit , la date sera modifiée a chaque fois que tu
modifiera la valeur dans un des deux control, MaDate sera
donc la date du dernier changement de données, et non une
date de création de l'enregistrement.




-----Message d'origine-----
Bonjour tout le monde

Une question toute simple dont je ne trouve pas la
reponse.


Une table avec 3 champs (noms, prenoms, madate).
Un formulaire sur cette table.

Ma question :
Comment renseigner le champ madate par la date du jour
quand on change un des deux autres champs ?

Ce que j'ai fait :
sur l'evenement apres MAJ du formulaire j'ai mis le code
suivant :
Screen.ActiveForm.Controls("madate").Value = Date
Cela marche assez bien, sauf que lorsque je veux changer
d'enregistrement, Access se bloque. je dois appuyer sur
Echap avant de pouvoir changer d'enregistrement.

Quelqu'un qui serait revenu de congé (ou pas encore
parti)

aurait-il une solution ?

Pierre

.



Avatar
Phil
Bonjour,
Sur l'evenement apres MAJ du noms et aussi du prenoms
tu fais :
Me.madate = Date()
Il faut que madate soit définie comme une date bien sur.
Salut,


Bonjour tout le monde

Une question toute simple dont je ne trouve pas la reponse.

Une table avec 3 champs (noms, prenoms, madate).
Un formulaire sur cette table.

Ma question :
Comment renseigner le champ madate par la date du jour
quand on change un des deux autres champs ?

Ce que j'ai fait :
sur l'evenement apres MAJ du formulaire j'ai mis le code
suivant :
Screen.ActiveForm.Controls("madate").Value = Date
Cela marche assez bien, sauf que lorsque je veux changer
d'enregistrement, Access se bloque. je dois appuyer sur
Echap avant de pouvoir changer d'enregistrement.

Quelqu'un qui serait revenu de congé (ou pas encore parti)
aurait-il une solution ?

Pierre




Avatar
Pierre Dumas
Bonjour
-----Message d'origine-----
au lieu de mettre ta procédure dans l'evenement du
formulaire, mets la dans le changement des controls noms
et prénoms de la facon suivante:


Je suis tout a fait d'accord, mais ce n'etait qu'un
formulaire d'exemple. Mon vrai formulaire comporte une
trentaine de champs, plus des sous-formulaires. Et il faut
aussi le faire sur d'autres formulaires. C'est pour cela
que je prefererai BEAUCOUP faire le test sur le formulaire
plutot que sur les champs.
Merci quand meme.

D'autres idees ?

Ceci dit , la date sera modifiée a chaque fois que tu
modifiera la valeur dans un des deux control, MaDate sera
donc la date du dernier changement de données, et non une
date de création de l'enregistrement.


Je suis d'accord, mais c'est ce que je veux.

Pierre

Avatar
Phil
Bonjour,
Dès lors tu peux le faire avec la fonction OnDirty : a chaque changement tu
modifie ta date. Attention de désactiver la modification de ton champ date
car tu tournerais en rond.
Salut,


Bonjour
-----Message d'origine-----
au lieu de mettre ta procédure dans l'evenement du
formulaire, mets la dans le changement des controls noms
et prénoms de la facon suivante:


Je suis tout a fait d'accord, mais ce n'etait qu'un
formulaire d'exemple. Mon vrai formulaire comporte une
trentaine de champs, plus des sous-formulaires. Et il faut
aussi le faire sur d'autres formulaires. C'est pour cela
que je prefererai BEAUCOUP faire le test sur le formulaire
plutot que sur les champs.
Merci quand meme.

D'autres idees ?

Ceci dit , la date sera modifiée a chaque fois que tu
modifiera la valeur dans un des deux control, MaDate sera
donc la date du dernier changement de données, et non une
date de création de l'enregistrement.


Je suis d'accord, mais c'est ce que je veux.

Pierre





Avatar
Raymond [mvp]
Bonjour.

il faut placer le changement de date sur l'événement Before_Update pour
qu'il soit pris en charge lors de la mise à jour de l'enregistrement
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.Madate = Date
End Sub

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierre Dumas" a écrit dans le message
de news:b2b601c488f7$117868e0$
Bonjour
-----Message d'origine-----
au lieu de mettre ta procédure dans l'evenement du
formulaire, mets la dans le changement des controls noms
et prénoms de la facon suivante:


Je suis tout a fait d'accord, mais ce n'etait qu'un
formulaire d'exemple. Mon vrai formulaire comporte une
trentaine de champs, plus des sous-formulaires. Et il faut
aussi le faire sur d'autres formulaires. C'est pour cela
que je prefererai BEAUCOUP faire le test sur le formulaire
plutot que sur les champs.
Merci quand meme.

D'autres idees ?

Avatar
Pierre Dumas
il faut placer le changement de date sur l'événement
Before_Update pour

qu'il soit pris en charge lors de la mise à jour de
l'enregistrement


Il fallait bien le faire avant la MAJ et non avant.

Merci bien.

Pierre