Date de mise à jour
Comment mémoriser la date de denière modification d’un enregistrement dans une table ?
- Dans la table concernée, ajoutez un champ
Date de dernière modification
(ou tout autre nom !), de type Date/Heure. Enregistrez la table. - Ouvrez maintenant le formulaire associé, en mode Création.
- Dans l’événement
Avant mise à jour
(BeforeUpdate
), tapez le code suivant :Me![Date de dernière modification] = Date
- Le jour de la dernière modification sera ainsi stocké à chaque changement (du genre : 21/10/2008).
- Si vous souhaitez le jour et l’heure (du genre : 21/10/2008 9:35:07), écrivez plutôt :
Me![Date de dernière modification] = Now
Salut je travail sur access 2007, ou j’ai mis au points une base de gestion de produit chimique. J’ai fait un jolie formulaire avec un champs dernière mise à jour; Je rentre donc le code vga suivant :
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me![Dernière mise à jour] = Date
End Sub
Mais ça ne fonctionne pas quand je fait une mise à jour de l’une de mes fiches produits. Ou est mon erreur?
Merci d’avance
A priori, le code a l’air correct. Est-ce que :
1. La table associée au formulaire contient bien un champ appelé [Dernière mise à jour] (sans les crochets) ?
2. Une erreur se produit à l’exécution ?
3. Le code VBA est activé au démarrage (barre jaune sous le ruban, lors de l’ouverture de la base) ?
foobar > Est-ce que le code est tapé dans le bon événement «
Avant MAJ
» ? (cet événement existe pour le formulaire et pour les champs de saisie, notamment). Et dans le bloc VBA de l’événement (entreSub
etEnd Sub
), pas dans la propriété du formulaire.Est-ce que la table contient un champ appelé
Date de dernière modification
? (sinon, tu adaptes le code VBA en fonction du champ exact).Et sinon, quand ça ne marche pas : ça ne produit rien, ou Access affiche un message d’erreur ?
Le « Me » ne doit pas être la source du problème (pour plus d’infos, voir cet article).
Bonjour,
J’ai bien tapé « Me![Date de dernière modification] = Now » mais cela ne fonctionne pas ? Au contraire, erreur sur Me! ???
Merci.
sara > Si tu les écris en SQL, tes dates doivent être au format
#mm/jj/aaaa#
(avec les # comme délimiteurs). Et comme tu compares à un champ Date, la valeur ne peut pas être uniquement 2013 (qui est un nombre entier, mais pas une date).HERVE qu’est ce que vous pensez pour ce code :
SELECT IIf(2013>[Date] And [Clôturé]=No, »oui », » ») AS Retard, *
FROM Table10
mais ne fonctionne pas m’affiche rien lui aussi 🙁
Bonjour Hervé,
Merci énormément vraiment merci beaucoup pour tout 🙂 , bon voila le code que j’ai fait mais m’affiche rien sur le champ retard :
» SELECT IIf(12/12/2013<[Date] And [Clôturé]=No, »Retard », » ») AS Retard, *
FROM Table10
WHERE (((Table10.Retard) Is Not Null));
«
🙂
sara > Dans une requête, le calcul pourrait être quelque chose de ce genre :
Bonjour Hervé,
Merci pour votre explication de probléme mais est ce que vou pouvez me faire un exemple c’est il vous plait? 🙂 et pour mes autres soucis qui sont sur autre articles j’attend votre réponse avec impatience et Merci d’avance 🙂
sara > A priori, si le 3ème champ se déduit des deux autres, il ne devrait pas être créé dans la table, mais au contraire être calculé dans une requête. Donc on doit pouvoir éviter du VBA ici, et passer par un champ calculé de requête, avec une formule
VraiFaux()
.PS : J’ai vu tes autres questions, sur d’autres articles, mais je n’ai pas encore eu le temps de tout pointer. 😉
Bonjour hervé,
Merci pour votre aide et votre site qui est très instructif. Par contre, j’ai un soucis c’est ue je veux faire un champs qui se remplit d’aprés la date de demande par exemple on a une action doit se faire avant 12/12/2013 et on a un autre champs cloturé qui marque que c’est clos ou pas donc: (date =12/12/2013)et (cloturé: OUI/NON)donc moi je veux réaliser un 3éme champs ( retard) remplit tout seul d’aprés les deux champs date et cloturé c’est a dire s’il est cloturé avant la date c’est bon le champ retard est vide si non il marque oui ( il est en retard). j’espère avoir été claire . je voudrais savoir s’il est possible de leur réaliser 🙁