OVH Cloud OVH Cloud

Réponse à Raymond [MVP]

2 réponses
Avatar
Bernard Bicheroux
Bonjour Raymond,

En fait je suis dans mon form. d'encodage et via VBA, j'utilise DCount
pour afficher le nbre d'enreg. qui a été mis à jour via une requête Docmd:

Private Sub Form_Open(Cancel As Integer)
'MAJ les produits périmés à l'aide d'une requête SQL
'Puis affiche un message pour indiquer le nbre de produits périmés

Dim Peremption As Integer

DoCmd.SetWarnings False 'désactivation des messages systèmes
Message ("Mise à jours des produits périmés")
'Création d'une requête MAJ
DoCmd.RunSQL "UPDATE [copie de produits] SET [copie de produits].Declasse =
true WHERE (([copie de produits].Declasse=False) AND
(Now()>[DatePeremption]));"
DoCmd.SetWarnings True 'activation des messages systèmes
'Compte le nbre d'enregistrements MAJ et l'affiche dans un message
Peremption = DCount("[DatePeremption]", "copie de produits",
"[DatePeremption]<now()")
Me.[NbreMAJ].Value = Peremption
(je ne sais pas pour la suite)
Message (Peremption & " " & "produit(s) périmés ont été déclassés.")
End Sub

Quand j'active cette procédure pour la 1ière fois, la MAJ se fait
correctement et mon message affiche par ex. 367 enreg. MAJ. Mais quand
j'active la procédure une 2ème fois, mon msg affiche par ex. 368 enreg. MAJ.
Or le but est d'afficher qu'il y a eu seulement 1 enreg. MAJ entre temps.
Donc, j'ai décidé de stocker ma 1ier val. de MAJ dans une table à part
(Me.[NbreMAJ].Value = Peremption) et de retirer de ma val. lue la 2ieme fois
la 1ier val. pour obtenir le nbre d'enreg. MAJ à ce moment. Puis je stocke
ma seconde val. pour la prochaine fois, etc etc. J'espère que je suis
claire....

Merci.

2 réponses

Avatar
Raymond [mvp]
Déclare en début de code une variable
Dim Cumul_Péremption As Long

dans le code:
Peremption = DCount("[DatePeremption]", "copie de produits",
"[DatePeremption]<now()")
Me.[NbreMAJ].Value = Peremption
msgbox (Peremption - Cumul_Péremption ) & " produit(s) périmés ont été
déclassés."
Cumul_Péremption = Cumul_Péremption + Peremption
End Sub


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


"Bernard Bicheroux" a écrit dans le message
de news:
Bonjour Raymond,

En fait je suis dans mon form. d'encodage et via VBA, j'utilise DCount
pour afficher le nbre d'enreg. qui a été mis à jour via une requête
Docmd:


Private Sub Form_Open(Cancel As Integer)
'MAJ les produits périmés à l'aide d'une requête SQL
'Puis affiche un message pour indiquer le nbre de produits périmés

Dim Peremption As Integer

DoCmd.SetWarnings False 'désactivation des messages systèmes
Message ("Mise à jours des produits périmés")
'Création d'une requête MAJ
DoCmd.RunSQL "UPDATE [copie de produits] SET [copie de produits].Declasse
true WHERE (([copie de produits].Declasseúlse) AND
(Now()>[DatePeremption]));"
DoCmd.SetWarnings True 'activation des messages systèmes
'Compte le nbre d'enregistrements MAJ et l'affiche dans un message
Peremption = DCount("[DatePeremption]", "copie de produits",
"[DatePeremption]<now()")
Me.[NbreMAJ].Value = Peremption
(je ne sais pas pour la suite)
Message (Peremption & " " & "produit(s) périmés ont été déclassés.")
End Sub

Quand j'active cette procédure pour la 1ière fois, la MAJ se fait
correctement et mon message affiche par ex. 367 enreg. MAJ. Mais quand
j'active la procédure une 2ème fois, mon msg affiche par ex. 368 enreg.
MAJ.

Or le but est d'afficher qu'il y a eu seulement 1 enreg. MAJ entre temps.
Donc, j'ai décidé de stocker ma 1ier val. de MAJ dans une table à part
(Me.[NbreMAJ].Value = Peremption) et de retirer de ma val. lue la 2ieme
fois

la 1ier val. pour obtenir le nbre d'enreg. MAJ à ce moment. Puis je
stocke

ma seconde val. pour la prochaine fois, etc etc. J'espère que je suis
claire....

Merci.




Avatar
Raymond [mvp]
.../... faudra peut-être un Nz pour Peremption et Cumul_Péremption pour
éviter les valeurs null. tu verras.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum