OVH Cloud OVH Cloud

Compter les enregistrements et...

23 réponses
Avatar
Kyvu
Bonjour,

J'ai un formulaire bas=E9 sur une requ=EAte qui extrait des=20
articles par famille.

A l'ouverture de ce formulaire, j'aimerai compter le=20
nombre d'enregistrements pr=E9sents dans cette requ=EAte et=20
l'inscrire dans le titre du formulaire en question.

Ce qui serait chouette, c'est d'avoir dans la barre de=20
titre du formulaire quelque chose du genre... "Plateaux:=20
23 articles."

Pouvez-vous m'aider?

Merci pour votre aide.

@micalement.



Kyvu On Line!

10 réponses

1 2 3
Avatar
JAG
Le plus simple je pense est de compter ces
enregistrements dès le chargement de ton formulaire.
Tu créé un événement ,au chargement de ton formulaire ,
quiva chercher le nombre d'enregistrements dans les
propriétés de la query (mais ca je suis pas sur) et mets
ce nombre directement dans ta case.
Après il y a peut etre mieux
bon courage
-----Message d'origine-----
Bonjour,

J'ai un formulaire basé sur une requête qui extrait des
articles par famille.

A l'ouverture de ce formulaire, j'aimerai compter le
nombre d'enregistrements présents dans cette requête et
l'inscrire dans le titre du formulaire en question.

Ce qui serait chouette, c'est d'avoir dans la barre de
titre du formulaire quelque chose du genre... "Plateaux:
23 articles."

Pouvez-vous m'aider?

Merci pour votre aide.

@micalement.



Kyvu On Line!
.



Avatar
3stone
Salut,

Kyvu
J'ai un formulaire basé sur une requête qui extrait des
articles par famille.
A l'ouverture de ce formulaire, j'aimerai compter le
nombre d'enregistrements présents dans cette requête et
l'inscrire dans le titre du formulaire en question.

Ce qui serait chouette, c'est d'avoir dans la barre de
titre du formulaire quelque chose du genre... "Plateaux:
23 articles."



Si les noms des articles se trouvent dans le contrôle "txtNomArticle"...
tu peux mettre dans l'événement "Sur activation" du formulaire quelque
chose comme:

Me.Caption = Me![txtNomArticle] & Me.Recordsetclone.Recordcount & " articles."

ou

Me.Caption = Me.Recordsetclone.Recordcount & " articles."



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------
Avatar
Nicolas Cailliot
Bonjour,
Pierre, j'ai repris ta solution pour afficher dans le contrôle d'un
sous-formulaire le nombre d'enregistrements associés au formulaire parent
(ta formule placée dans l'événement "sur activation" du sous-formulaire).
Lorsque j'ouvre le formulaire parent, ce contrôle affiche 1 (alors qu'il y a
5 enregistrements associés), si je clique sur le bouton suivant du
sous-formulaire, le calcul s'effectue et le bon résultat est affiché.
Pourtant l'ouverture du formulaire parent devrait activer le sous-formulaire
et déclencher le calcul, non ? Mes connaissances balbutiantes en
programmation ne me permette pas de diagnostiquer le problème.
Merci de ton aide.

Bien cordialement
NIcolas Cailliot
"3stone" a écrit dans le message news:

Salut,

Kyvu
J'ai un formulaire basé sur une requête qui extrait des
articles par famille.
A l'ouverture de ce formulaire, j'aimerai compter le
nombre d'enregistrements présents dans cette requête et
l'inscrire dans le titre du formulaire en question.

Ce qui serait chouette, c'est d'avoir dans la barre de
titre du formulaire quelque chose du genre... "Plateaux:
23 articles."



Si les noms des articles se trouvent dans le contrôle "txtNomArticle"...
tu peux mettre dans l'événement "Sur activation" du formulaire quelque
chose comme:

Me.Caption = Me![txtNomArticle] & Me.Recordsetclone.Recordcount & "
articles."


ou

Me.Caption = Me.Recordsetclone.Recordcount & " articles."



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------





Avatar
Nicolas Cailliot
Merci
Les solutions les plus simples...
Puis je te demander un petit plus. Peut-on compléter la formule dans la
source de la zone de texte pour faire apparaître qqchose du genre 2ème
enregistrement sur X enregistrements. Ce que je veux en fait c'est
reproduire ce qu'affiche la zone "bouton de déplacement", mais en plus
visible à l'intérieur du formulaire.

Merci
Bien cordialement
Nicolas

"3stone" a écrit dans le message news:

Salut,

Nicolas Cailliot
Pierre, j'ai repris ta solution pour afficher dans le contrôle d'un
sous-formulaire le nombre d'enregistrements associés au formulaire
parent


(ta formule placée dans l'événement "sur activation" du
sous-formulaire).


Lorsque j'ouvre le formulaire parent, ce contrôle affiche 1 (alors qu'il
y a


5 enregistrements associés), si je clique sur le bouton suivant du
sous-formulaire, le calcul s'effectue et le bon résultat est affiché.
Pourtant l'ouverture du formulaire parent devrait activer le
sous-formulaire


et déclencher le calcul, non ? Mes connaissances balbutiantes en
programmation ne me permette pas de diagnostiquer le problème.



Si tu veux simplement compter le nombre d'enregistrements
qui se trouve dans le sous-formulaire, crées s'y une zone de texte
avec comme source :

= Count(*)


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------







Avatar
Raymond
Bonjour.

une procédure toute faite sur:
http://access.seneque.free.fr/comptage_enr.htm

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Nicolas Cailliot" a écrit dans le message de
news:3f5361f5$0$275$
Merci
Les solutions les plus simples...
Puis je te demander un petit plus. Peut-on compléter la formule dans la
source de la zone de texte pour faire apparaître qqchose du genre 2ème
enregistrement sur X enregistrements. Ce que je veux en fait c'est
reproduire ce qu'affiche la zone "bouton de déplacement", mais en plus
visible à l'intérieur du formulaire.

Merci
Bien cordialement


Avatar
3stone
Salut,

Nicolas Cailliot
Puis je te demander un petit plus. Peut-on compléter la formule dans la
source de la zone de texte pour faire apparaître qqchose du genre 2ème
enregistrement sur X enregistrements. Ce que je veux en fait c'est
reproduire ce qu'affiche la zone "bouton de déplacement", mais en plus
visible à l'intérieur du formulaire.



Vas regarder ceci :

http://www.mvps.org/accessfr/forms/frm0026.htm


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Nicolas Cailliot
Bonsoir,

Pierre, j'ai essayé la solution que tu proposais dans ce lien
(http://www.mvps.org/accessfr/forms/frm0026.htm), mais l'erreur suivante
m'est renvoyée : "propriété ou méthode non gérée par cet objet" à propos des
lignes suivantes :
Me!NbRepères.Caption = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount

Raymond, j'ai essayé la solution donnée dans ta fiche, malheureusement, là
aussi, la ligne "Dim Rs As DAO.Recordset" renvoie l'erreur "type défini par
l'utilisateur non définie"

J'ai access 2000 et je travaille avec une base .mdb, est-ce là le problème ?

Merci de vos réponses, j'apprends parfois mieux avec vos réponses qu'avec
mon manuel VBA pour access (au fait pouvez vous m'en conseiller un pour
presque débutant dont vous auriez éprouvé la qualité).

Bien cordialement
Nicolas


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------





Avatar
3stone
Salut,

Nicolas Cailliot
Pierre, j'ai essayé la solution que tu proposais dans ce lien
(http://www.mvps.org/accessfr/forms/frm0026.htm), mais l'erreur suivante
m'est renvoyée : "propriété ou méthode non gérée par cet objet" à propos des
lignes suivantes :
Me!NbRepères.Caption = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount


tu dois cocher la référence... voir plus bas...



Raymond, j'ai essayé la solution donnée dans ta fiche, malheureusement, là
aussi, la ligne "Dim Rs As DAO.Recordset" renvoie l'erreur "type défini par
l'utilisateur non définie"

J'ai access 2000 et je travaille avec une base .mdb, est-ce là le problème ?



As tu coché la référence "Microsoft DAO360.dll"
dans le menu "Outils, Références" lorsque tu te trouve dans VBE (Visual Basic Editor)


Merci de vos réponses, j'apprends parfois mieux avec vos réponses qu'avec
mon manuel VBA pour access (au fait pouvez vous m'en conseiller un pour
presque débutant dont vous auriez éprouvé la qualité).


Un bon bouquin...
la brique de Hervé n'est pas mal...
http://www.self-access.com/access/reference/


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Nicolas Cailliot
Bonjour,
J'ai coché la référence Microsoft DAO 3.6 Object Library, référence la plus
approchante, j'obtiens toujours le même message d'erreur" pour la solution
proposée par Pierre.

En revanche, le code proposé par Raymond fonctionne ou presque. J'ai essayé
de dénicher le problème en espérant apporter une utile contribution mais en
vain.
Quand on passe d'une fiche à l'autre dans le formulaire parent, le controle
de comptage dans le sous-formulaire affiche
1/1 (Premier)(soit 0,00 %)(soit 0,00 %)
- il affiche 1 pour le total des enregistrements alors qu'il y en a
plusieurs ;
- il répète la chaîne "(soit 0,00%)" ?

Si l'on passe au 2ème enregistrement du sous-formulaire alors tout se
rétablit, l'affichage est correct et le total d'enregistrement aussi, si
l'on repasse au premier enregistrement, il devient alors correct. En
revanche, arrivé au dernier enregistrement, tout est bien sauf qu'il affiche
80 % pour le dernier enrgt sur 5, par exemple.

Le pb est-il dû à mon formulaire ou au code ? (quelle audace!)

Au passage, Raymond, dans ton code, sur une des lignes Case, tu écris
(Ppremier au lieu de Premier), ça, j'ai pu corriger...

Merci de vos lumières
Bien cordialement
Nicolas Cailliot


"3stone" a écrit dans le message news:
#
Salut,

Nicolas Cailliot
Pierre, j'ai essayé la solution que tu proposais dans ce lien
(http://www.mvps.org/accessfr/forms/frm0026.htm), mais l'erreur suivante
m'est renvoyée : "propriété ou méthode non gérée par cet objet" à propos
des


lignes suivantes :
Me!NbRepères.Caption = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount


tu dois cocher la référence... voir plus bas...



Raymond, j'ai essayé la solution donnée dans ta fiche, malheureusement,



aussi, la ligne "Dim Rs As DAO.Recordset" renvoie l'erreur "type défini
par


l'utilisateur non définie"

J'ai access 2000 et je travaille avec une base .mdb, est-ce là le
problème ?




As tu coché la référence "Microsoft DAO360.dll"
dans le menu "Outils, Références" lorsque tu te trouve dans VBE (Visual
Basic Editor)



Merci de vos réponses, j'apprends parfois mieux avec vos réponses
qu'avec


mon manuel VBA pour access (au fait pouvez vous m'en conseiller un pour
presque débutant dont vous auriez éprouvé la qualité).


Un bon bouquin...
la brique de Hervé n'est pas mal...
http://www.self-access.com/access/reference/


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------







Avatar
3stone
Salut Nicolas

Nicolas Cailliot
Pierre, j'ai essayé la solution que tu proposais dans ce lien
(http://www.mvps.org/accessfr/forms/frm0026.htm), mais l'erreur suivante
m'est renvoyée : "propriété ou méthode non gérée par cet objet" à propos
des


lignes suivantes :
Me!NbRepères.Caption = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount






J'ai pas fait gaffe... ;-))

Dans l'exemple...
Me!lblNavigate.Caption = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount

le "lblNavigate" est une étiquette et non une zone de texte
...cela est d'ailleurs dit dans l'énoncé ;-)
"Soit l'étiquette lblNavigate qui contiendra ce résultat..."


Si tu as mis une zone de texte, tu modifie ainsi :

Me!NbRepères.Values = "Enregistrement " & _
.AbsolutePosition + 1 _
& " de " & .RecordCount



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------



1 2 3