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

statistiques : controle calculé avec « CpteSom » et « SomDom »

6 réponses
Avatar
Skalia
Bonjour,

Je dois établir un Etat présentant des statistiques afin de les imprimer.
Ces statistiques sont établies à partir d'une requête qui s’ouvre à
l'ouverture de l'Etat.
Dans cet Etat, je tente de compter le nombre d'enregistrements valides
(compte) et le total du contenu du champ « NBREX » (somme).

Là où ça se complique, c'est que je dois décomposer ces statistiques selon
les contenus du champ « envoi » et du champ « abonne ».
Par exemple : je souhaite compter les enregistrements du champ "nbrex" dont
le critère du champ « envoi » est ‘R’
Pour ce faire j’ai mis la formule suivante dans une zone de texte
indépendante :
=CpteDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")

Malheureusement il calcule le nombre d’enregistrements de la base sans tenir
compte du filtre de la requête mise au lancement de l’Etat. Comment le forcer
à prendre en compte le fitrage ?

Merci d’avance pour votre compréhension et votre aide.

PS : Je suis débutante en Access et en VBA, mais je suis disposée à
apprendre si quelqu’un se sent en mesure de m’aider.

6 réponses

Avatar
Raymond [mvp]
Bonsoir.

une simple question: pourquoi ne pas définir des groupes et placer ces
contrôles dans les bas de groupe ce qui permettrait un calcul automatique ?
est-ce possible ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"Skalia" a écrit dans le message de news:


Bonjour,

Je dois établir un Etat présentant des statistiques afin de les imprimer.
Ces statistiques sont établies à partir d'une requête qui s'ouvre à
l'ouverture de l'Etat.
Dans cet Etat, je tente de compter le nombre d'enregistrements valides
(compte) et le total du contenu du champ « NBREX » (somme).

Là où ça se complique, c'est que je dois décomposer ces statistiques selon
les contenus du champ « envoi » et du champ « abonne ».
Par exemple : je souhaite compter les enregistrements du champ "nbrex"
dont
le critère du champ « envoi » est 'R'
Pour ce faire j'ai mis la formule suivante dans une zone de texte
indépendante :
=CpteDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")

Malheureusement il calcule le nombre d'enregistrements de la base sans
tenir
compte du filtre de la requête mise au lancement de l'Etat. Comment le
forcer
à prendre en compte le fitrage ?

Merci d'avance pour votre compréhension et votre aide.

PS : Je suis débutante en Access et en VBA, mais je suis disposée à
apprendre si quelqu'un se sent en mesure de m'aider.


Avatar
Skalia
Bonjour,

d'abord merci d'avoir répondu.

Ensuite je viens de me rendre compte que j'avais mis en place un formulaire
et non pas un Etat. J'ai donc transféré mes premiers calculs dans un Etat
cette fois-ci et d'autres problémes sont survenus (comme la multiplication de
mes zones de texte en fonction du nombre d'exemplaire soit plus de 800 zones
de texte contenant la somme de NBREX (présenté dans le post précédent)), je
construit donc mes statistiques dans un formulaire en fin de compte.

Enfin Je ne maitrise pas le regroupement, je ne peux malheureusement pas
vous dire si cela fonctionnera Mais je pense que le regroupement va me
permettre d'annuler cette multiplication (voir ci-dessus) mais pas de
calculer des sommes.

J'ai consulté l'aide de ACCESS pour bien comprendre son fonctionnement
(regroupement d'enregistrement) mais cela reste très obscur pour moi.

Pensez vous pouvoir m'éclairer par rapport à mon nouveau contexte ?
Bien à vous


Bonsoir.

une simple question: pourquoi ne pas définir des groupes et placer ces
contrôles dans les bas de groupe ce qui permettrait un calcul automatique ?
est-ce possible ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"Skalia" a écrit dans le message de news:


Bonjour,

Je dois établir un Etat présentant des statistiques afin de les imprimer.
Ces statistiques sont établies à partir d'une requête qui s'ouvre à
l'ouverture de l'Etat.
Dans cet Etat, je tente de compter le nombre d'enregistrements valides
(compte) et le total du contenu du champ « NBREX » (somme).

Là où ça se complique, c'est que je dois décomposer ces statistiques selon
les contenus du champ « envoi » et du champ « abonne ».
Par exemple : je souhaite compter les enregistrements du champ "nbrex"
dont
le critère du champ « envoi » est 'R'
Pour ce faire j'ai mis la formule suivante dans une zone de texte
indépendante :
=CpteDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")

Malheureusement il calcule le nombre d'enregistrements de la base sans
tenir
compte du filtre de la requête mise au lancement de l'Etat. Comment le
forcer
à prendre en compte le fitrage ?

Merci d'avance pour votre compréhension et votre aide.

PS : Je suis débutante en Access et en VBA, mais je suis disposée à
apprendre si quelqu'un se sent en mesure de m'aider.







Avatar
Raymond [mvp]
Qu'est-ce que c'est ces 800 zones de texte ?
tu dépasses le maximum autorisé.
Dans un groupe on peut faire des calculs pour le groupe sans problème.

pour que tout le monde comprenne bien ton problème, pourrais-tu expliquer
exactement le résultat que tu attends dans cet état.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"Skalia" a écrit dans le message de news:

Bonjour,

d'abord merci d'avoir répondu.

Ensuite je viens de me rendre compte que j'avais mis en place un
formulaire
et non pas un Etat. J'ai donc transféré mes premiers calculs dans un Etat
cette fois-ci et d'autres problémes sont survenus (comme la multiplication
de
mes zones de texte en fonction du nombre d'exemplaire soit plus de 800
zones
de texte contenant la somme de NBREX (présenté dans le post précédent)),
je
construit donc mes statistiques dans un formulaire en fin de compte.

Enfin Je ne maitrise pas le regroupement, je ne peux malheureusement pas
vous dire si cela fonctionnera Mais je pense que le regroupement va me
permettre d'annuler cette multiplication (voir ci-dessus) mais pas de
calculer des sommes.

J'ai consulté l'aide de ACCESS pour bien comprendre son fonctionnement
(regroupement d'enregistrement) mais cela reste très obscur pour moi.

Pensez vous pouvoir m'éclairer par rapport à mon nouveau contexte ?
Bien à vous



Avatar
Skalia
Bonjour,

Voila ce qui ce passe :

j'ai pour l'instant 4 zones de texte
chacune avec un calcul, lorsque j'ouvre mon Etat en mode aperçu avant
impression, ces 4 zones de texte et leur contenu sont présentes sur x pages
(je n'ai pas compté) et au moins 4 fois par page

exemple (je voulais insérer une image mais je ne crois pas que ce soit
possible ici)
Total enregistrements : 600
Nombre d'exemplaire : 630
Total enregistrement code R (uniquement) : 400
Nombre d'exemplaire Code R (uniquement) : 450

Total enregistrements : 600
Nombre d'exemplaire : 630
Total enregistrement code R (uniquement) : 400
Nombre d'exemplaire Code R (uniquement) : 450

Total enregistrements : 600
Nombre d'exemplaire : 630
Total enregistrement code R (uniquement) : 400
Nombre d'exemplaire Code R (uniquement) : 450

Etc.......
Je ne sais comment résoudre le problème ni même pourquoi il fait cela

Pour ce que j'ai à faire : Il s'agit de la gestion d'abonnés

Ouvrir un Etat à partir d'une requête ([Requête ABON]) ayant des critères
variables (Num revue, date d'inscription, le type d'envoi) et 1 critère fixe
(NBREX <> 0)
Ces champs sont issus d’une table nommée ABON

Je tente de calculer
le Total du nombre d'enregistrement valide =Compte([NBREX])
le Total d'exemplaires valide (un enregistrement contenant un ou plusieurs
exemplaires) =Somme([NBREX])
Ces deux la fonctionnent

Ensuite je dois calculer le nombre d’enregistrement ET le total des
exemplaires (champ NBREX) correspondant au code R (champ ENVOI)
(il existe différents codes selon le type d’abonnement et le type d’abonnés)
Pour l’instant j’ai
=CpteDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")
=SomDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")
Ces deux là me donne des résultats mais pour la totalité de la table sans
prendre en compte le filtre de la requête d’ouverture.

Dernière partie
Je dois calculer le nombre d’enregistrement ET le total des exemplaires
(champ NBREX) correspondant au code R(champ ENVOI) en fonction du code 1
(champ ABONNE), puis du code 2, puis du code 3, etc….
Autrement dit le comptage du nombre d’enregistrements du « Nb d’exemplaire
» [NBREX] dont le code ENVOI est R et le code ABONNE est 1
Puis le comptage du nombre d’enregistrements du « Nb d’exemplaire » [NBREX]
dont le code ENVOI est R et le code ABONNE est 1

Voilà, j’espère que c’est plus clair pour vous
Bien à vous
Avatar
Raymond [mvp]
il ne s'agit pas de contrôles différents mais des mêmes contrôles qui
calculent selons les différents critères. ça va mieux.
pour faire cela, il faut déterminer des groupes :
- faire un groupe pour le code R et pour le code abonné
- le code abonné étant en réalité un sous-groupe de R. est-ce bien ça ?

access va te le calculer automatiquement.
lorsque tu vas créer ton état par l'assistant, tu diras à access que tu veux
des regroupements, tu indiqueras les champs concernés et les calculs que tu
veux faire.
tu nous tiens au courant.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"Skalia" a écrit dans le message de news:

| Bonjour,
|
| Voila ce qui ce passe :
|
| j'ai pour l'instant 4 zones de texte
| chacune avec un calcul, lorsque j'ouvre mon Etat en mode aperçu avant
| impression, ces 4 zones de texte et leur contenu sont présentes sur x
pages
| (je n'ai pas compté) et au moins 4 fois par page
|
| exemple (je voulais insérer une image mais je ne crois pas que ce soit
| possible ici)
| Total enregistrements : 600
| Nombre d'exemplaire : 630
| Total enregistrement code R (uniquement) : 400
| Nombre d'exemplaire Code R (uniquement) : 450
|
| Total enregistrements : 600
| Nombre d'exemplaire : 630
| Total enregistrement code R (uniquement) : 400
| Nombre d'exemplaire Code R (uniquement) : 450
|
| Total enregistrements : 600
| Nombre d'exemplaire : 630
| Total enregistrement code R (uniquement) : 400
| Nombre d'exemplaire Code R (uniquement) : 450
|
| Etc.......
| Je ne sais comment résoudre le problème ni même pourquoi il fait cela
|
| Pour ce que j'ai à faire : Il s'agit de la gestion d'abonnés
|
| Ouvrir un Etat à partir d'une requête ([Requête ABON]) ayant des critères
| variables (Num revue, date d'inscription, le type d'envoi) et 1 critère
fixe
| (NBREX <> 0)
| Ces champs sont issus d'une table nommée ABON
|
| Je tente de calculer
| le Total du nombre d'enregistrement valide =Compte([NBREX])
| le Total d'exemplaires valide (un enregistrement contenant un ou plusieurs
| exemplaires) =Somme([NBREX])
| Ces deux la fonctionnent
|
| Ensuite je dois calculer le nombre d'enregistrement ET le total des
| exemplaires (champ NBREX) correspondant au code R (champ ENVOI)
| (il existe différents codes selon le type d'abonnement et le type d'abonnés)
| Pour l'instant j'ai
| =CpteDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")
| =SomDom("[NBREX]";"[ABON]";"[ENVOI] = 'R'")
| Ces deux là me donne des résultats mais pour la totalité de la table sans
| prendre en compte le filtre de la requête d'ouverture.
|
| Dernière partie
| Je dois calculer le nombre d'enregistrement ET le total des exemplaires
| (champ NBREX) correspondant au code R(champ ENVOI) en fonction du code 1
| (champ ABONNE), puis du code 2, puis du code 3, etc..
| Autrement dit le comptage du nombre d'enregistrements du « Nb d'exemplaire
| » [NBREX] dont le code ENVOI est R et le code ABONNE est 1
| Puis le comptage du nombre d'enregistrements du « Nb d'exemplaire »
[NBREX]
| dont le code ENVOI est R et le code ABONNE est 1
|
| Voilà, j'espère que c'est plus clair pour vous
| Bien à vous
|
Avatar
Skalia
Bonjour,

Je pense que cela fonctionne, je suis en train de tester les diverses
possibilitées, je ne pensais pas que cela aurait pu être aussi simple.

Merci pour votre patience et pour vos diverses solutions.

Bien à vous

Skalia