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

Recordset / RecordsetClose pas mis à jour

8 réponses
Avatar
Vincent Lascaux
Bonjour,

Je veux afficher sur une feuille le nombre d'enregistrements disponibles
(comme ce qui est affiché en bas, le but étant seulement que ce soit plus
visible). Pour celà, j'ai mis le code suivant :
Private Sub Form_Current()
Dim rs As Recordset
Set rs = Me.RecordsetClone
MonEtiquette.Caption = CStr(rs.RecordCount)
End Sub

Apparemment, RecordsetClone n'est pas mis à jour lorsque l'evenement
d'activation est executé. A quel evenement puis je m'inscrire ?

--
Vincent

8 réponses

Avatar
Raymond [mvp]
Bonjour.

tu trouveras un exemple sur la page :
http://access.seneque.free.fr/comptage_enr.htm

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


"Vincent Lascaux" a écrit dans le message de
news:40373d62$0$28434$
Bonjour,

Je veux afficher sur une feuille le nombre d'enregistrements disponibles
(comme ce qui est affiché en bas, le but étant seulement que ce soit plus
visible). Pour celà, j'ai mis le code suivant :
Private Sub Form_Current()
Dim rs As Recordset
Set rs = Me.RecordsetClone
MonEtiquette.Caption = CStr(rs.RecordCount)
End Sub

Apparemment, RecordsetClone n'est pas mis à jour lorsque l'evenement
d'activation est executé. A quel evenement puis je m'inscrire ?

--
Vincent




Avatar
Vincent Lascaux
tu trouveras un exemple sur la page :
http://access.seneque.free.fr/comptage_enr.htm


C'est exactement ce que je fais, et ca n'a pas l'air de fonctionner pour
l'ouverture de pages avec filtre (avec une commande DoCmd.OpenForm "Nom de
la feuille", , , "Condition SQL"). Il semble que l'execution de la requete
ne soit pas terminée lorsque l'evenement "Current" est déclenché.
D'ailleurs, l'indice en bas de la page n'apparait qu'un cours instant apres
l'ouverture de la fenetre.

--
Vincent

Avatar
Raymond [mvp]
Si tu changes d'enregistrement, l'affichage est-il mis à jour normalement ?
car current se déclenche à chaque enregistrement.

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


"Vincent Lascaux" a écrit dans le message de
news:403748e3$0$28437$
tu trouveras un exemple sur la page :
http://access.seneque.free.fr/comptage_enr.htm


C'est exactement ce que je fais, et ca n'a pas l'air de fonctionner pour
l'ouverture de pages avec filtre (avec une commande DoCmd.OpenForm "Nom de
la feuille", , , "Condition SQL"). Il semble que l'execution de la requete
ne soit pas terminée lorsque l'evenement "Current" est déclenché.
D'ailleurs, l'indice en bas de la page n'apparait qu'un cours instant
apres

l'ouverture de la fenetre.

--
Vincent





Avatar
Vincent Lascaux
Si tu changes d'enregistrement, l'affichage est-il mis à jour normalement
?

car current se déclenche à chaque enregistrement.


Oui, ca ca marche

--
Vincent

Avatar
Raymond [mvp]
l'ordre des événements est
Ouverture - Charger - Redimensionner - Activé - Activation
la requête est exécutée sur chargement et ta fonction sur activation, donc
sans problème.
dans ta fonction, à la fin places un doevents
se passe-t-il autre chose ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Vincent Lascaux" a écrit dans le message de
news:40375314$0$28430$
Si tu changes d'enregistrement, l'affichage est-il mis à jour
normalement


?
car current se déclenche à chaque enregistrement.


Oui, ca ca marche

--
Vincent





Avatar
Vincent Lascaux
l'ordre des événements est
Ouverture - Charger - Redimensionner - Activé - Activation
la requête est exécutée sur chargement et ta fonction sur activation, donc
sans problème.
dans ta fonction, à la fin places un doevents
se passe-t-il autre chose ?


Ca a l'air de fonctionner avec un DoEvents positionné au début de la
fonction (mon avis est que ca laisse le temps à la requete de finir de
s'executer avant la lecture du RecordCount).
Cette solution ne me satisfait qu'à moitier parceque j'ai peur quelle marche
une fois sur deux (voire sur une machine sur deux) : si la requete est
vraiment longue à être executée, il y a risque que je reprenne la main avant
que RecordCount soit le bon.

A moins que je me trompe completement dans mon interprétation ?

--
Vincent

PS : un DoEvents à la fin de la fonction ne change logiquement rien

Avatar
Raymond [mvp]
A mon avis ça devrait suffire, car access lorsqu'il rencontre un doevents
exécute la totalité des ordres en attente. normalement !

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


"Vincent Lascaux" a écrit dans le message de
news:40376527$0$28425$
l'ordre des événements est
Ouverture - Charger - Redimensionner - Activé - Activation
la requête est exécutée sur chargement et ta fonction sur activation,
donc


sans problème.
dans ta fonction, à la fin places un doevents
se passe-t-il autre chose ?


Ca a l'air de fonctionner avec un DoEvents positionné au début de la
fonction (mon avis est que ca laisse le temps à la requete de finir de
s'executer avant la lecture du RecordCount).
Cette solution ne me satisfait qu'à moitier parceque j'ai peur quelle
marche

une fois sur deux (voire sur une machine sur deux) : si la requete est
vraiment longue à être executée, il y a risque que je reprenne la main
avant

que RecordCount soit le bon.

A moins que je me trompe completement dans mon interprétation ?

--
Vincent

PS : un DoEvents à la fin de la fonction ne change logiquement rien





Avatar
Vincent Lascaux
A mon avis ça devrait suffire, car access lorsqu'il rencontre un doevents
exécute la totalité des ordres en attente. normalement !


D'accord,

Merci bien pour ton aide précieuse, et au prochain bug :)

--
Vincent