Je rappelle le probleme auquel je suis confronté :
"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 ?"
La solution qui avait été proposée était de rajouter un DoEvents en début de
Form_Current de facon à laisser à Access le temps d'executer la requete SQL
et de mettre à jour Me.RecordsetClone
Malheureusement, ca n'a pas l'air de fonctionner à tous les coups (sur une
machine lente ou chargée, ca ne fonctionne même jamais)...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"Vincent Lascaux"
"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 ?"
La solution qui avait été proposée était de rajouter un DoEvents en début de Form_Current de facon à laisser à Access le temps d'executer la requete SQL et de mettre à jour Me.RecordsetClone Malheureusement, ca n'a pas l'air de fonctionner à tous les coups (sur une machine lente ou chargée, ca ne fonctionne même jamais)...
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"Vincent Lascaux"
"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 ?"
La solution qui avait été proposée était de rajouter un DoEvents en début de
Form_Current de facon à laisser à Access le temps d'executer la requete SQL
et de mettre à jour Me.RecordsetClone
Malheureusement, ca n'a pas l'air de fonctionner à tous les coups (sur une
machine lente ou chargée, ca ne fonctionne même jamais)...
Crée une étiquette que tu nomme "lblNavigate"
et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then
Me!lblNavigate.Caption = "New Record"
Else
With Me.RecordsetClone
.MoveLast
.Bookmark = Me.Bookmark
Me!lblNavigate.Caption = "Record " & _
.AbsolutePosition + 1 _
& " of " & .RecordCount
End With
End If
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
"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 ?"
La solution qui avait été proposée était de rajouter un DoEvents en début de Form_Current de facon à laisser à Access le temps d'executer la requete SQL et de mettre à jour Me.RecordsetClone Malheureusement, ca n'a pas l'air de fonctionner à tous les coups (sur une machine lente ou chargée, ca ne fonctionne même jamais)...
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Vincent Lascaux
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution jusqu'à ce que la requête SQL ait été executée.
Merci
-- Vincent
Crée une étiquette que tu nomme "lblNavigate"
et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then
Me!lblNavigate.Caption = "New Record"
Else
With Me.RecordsetClone
.MoveLast
.Bookmark = Me.Bookmark
Me!lblNavigate.Caption = "Record " & _
.AbsolutePosition + 1 _
& " of " & .RecordCount
End With
End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution
jusqu'à ce que la requête SQL ait été executée.
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution jusqu'à ce que la requête SQL ait été executée.
Merci
-- Vincent
Jessy Sempere [MVP]
Bonjour
En fait pour que la valeur retourné par RecordCount soit correcte, il faut parcourir entièrement le recordset avant d'où l'utilisation de la méthode MoveLast...
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Vincent Lascaux" a écrit dans le message news: 403d1ada$0$28457$
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution jusqu'à ce que la requête SQL ait été executée.
Merci
-- Vincent
Bonjour
En fait pour que la valeur retourné par RecordCount soit correcte,
il faut parcourir entièrement le recordset avant d'où l'utilisation
de la méthode MoveLast...
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Vincent Lascaux" <nospam@nospam.org> a écrit dans le message news:
403d1ada$0$28457$636a15ce@news.free.fr...
Crée une étiquette que tu nomme "lblNavigate"
et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then
Me!lblNavigate.Caption = "New Record"
Else
With Me.RecordsetClone
.MoveLast
.Bookmark = Me.Bookmark
Me!lblNavigate.Caption = "Record " & _
.AbsolutePosition + 1 _
& " of " & .RecordCount
End With
End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution
jusqu'à ce que la requête SQL ait été executée.
En fait pour que la valeur retourné par RecordCount soit correcte, il faut parcourir entièrement le recordset avant d'où l'utilisation de la méthode MoveLast...
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Vincent Lascaux" a écrit dans le message news: 403d1ada$0$28457$
Crée une étiquette que tu nomme "lblNavigate" et place ce code dans l'événement "Form_Current"
If Me.NewRecord Then Me!lblNavigate.Caption = "New Record" Else With Me.RecordsetClone .MoveLast .Bookmark = Me.Bookmark Me!lblNavigate.Caption = "Record " & _ .AbsolutePosition + 1 _ & " of " & .RecordCount End With End If
Ca a l'air de marcher. Il est probable que le MoveLast bloque l'execution jusqu'à ce que la requête SQL ait été executée.