Bonjour,
Comment constater l'augmentation du nombre d'enregistrements d'une table en utilisant l'événement timer (sur minuterie) d'un formulaire, afin de déclencher un traitement particulier?.
Bonjour,
Comment constater l'augmentation du nombre d'enregistrements d'une table en utilisant l'événement timer (sur minuterie) d'un formulaire, afin de déclencher un traitement particulier?.
Bonjour,
il suffit de conserver le RecordCount au chargement du formulaire et lorsque cette valeur est modifiée. Utiliser un Dao.Recordset.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Dim NbRecords as long, Rcd_Source As DAO.Recordset Private Sub Form_Load() Set Rcd_Source=CurrentDb.OpenRecordset("......") NbRecords=Rcd_Source.RecordCount Rcd.Close End sub Private sub Form_Timer() Set Rcd_Source = CurrentDb.OpenRecordset("...") If Rcd_Source.RecordCount > NbRecords Then 'Traitement NbRecords=Rcd_Source.RecordCount End if Rcd_Source.Close End sub Private Sub Form_Close() If Not (Rcd_Source Is Nothing) Then Set Rcd_Source = Nothing End Sub
Merci pour ta grande contribution, je vais la mettre en œuvre et je te tiendrai au courant du résultat
Merci pour ta contribution, mais ta solution semble limitée car le test se fait seulement au chargement du formulaire. Mais une fois que le formulaire est chargé, il n'y aucun moyen de constater le changement du nombre d'enregistrements de la table. En fait si je pose cette question, c'est parce que MS Access ne dispose pas des triggers pour modification des enregistrements d'une table.
Bonjour,
tu as raison, j'ai oublié certains éléments importants. Pour récupérer le nombre d'enregistrements d'un recordset il faut le parcourir une fois.
Un truc ressemblant à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Dim NbRecords as long, LocalDB As Dao.DataBase, RcdSource As DAO.Recordset Private Sub Form_Load() Set LocalDB=CurrentDB Set RcdSource=LocalDB.OpenRecordset("......") RcdSource.MoveLast NbRecords=RcdSource.RecordCount RcdSource.Close Set RcdSource=Nothing End sub Private sub Form_Timer() Set RcdSource = LocalDB.OpenRecordset("...") RcdSource.MoveLast If RcdSource.RecordCount > NbRecords Then 'Traitement NbRecords=RcdSource.RecordCount End if RcdSource.Close Set RcdSource=Nothing End sub
Bonjour,
Merci mille fois pour cette solution, je l'ai testée et ça marche bien.
Cordialement,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager