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

Pb CpteDom() dans formulaire/sous-formulaire

5 réponses
Avatar
Patrick ERIAU
Bonsoir =E0 tous,

un petit soucis avec la fonction CpteDom()

Formulaire principal ayant pour source:
TBL1(ID_TBL1, DATE_TBL1, TOTAL_TBL1)
Sous-formulaire ayant pour source:
TBL2(ID_TBL1#, SOC, ETAT, etc)
Champ ETAT =3D liste de valeur "OK", "NOK", "STANDDBY"

Pour comptabiliser le nombre d'enregistrement du sous-
formulaire contenant dans le champ "ETAT" la valeur "OK",=20
j'utilise la fonction suivante dans une zone de texte=20
ind=E9pendante plac=E9 dans le formulaire:

=3DCpteDom("[ETAT]";"TBL2";"[ETAT]=3D'En cours'")
le r=E9sultat g=E9n=E9r=E9 est erron=E9, puisqu'il correspond au=20
nombre total d'enregistrement de la table TBL2 qui=20
contiennent la valeur "OK" dans le champ "ETAT"

Si j'=E9cris la formule suivante :
=3DCpteDom("[ETAT]";"TBL2";"[ETAT]=3D'En cours'"=20
AND "[ID_TBL1#]=3D'[ID_TBL1]'")
Le r=E9sultat g=E9n=E9r=E9 est =E9gal =E0 la totalit=E9 des=20
enregistrements de la table TBL2

Comment r=E9diger la formule pour que le r=E9sultat se limite=20
au seuls enregistrements de mon sous-formulaire associ=E9 =E0=20
la valeur de mon formulaire. Sur que c'est mal r=E9diger !!!

Le formulaire affiche l'enregistrement 1 (ID_TBL1 =3D1)
Dans le sous-form je saisie 4 lignes d'enregistrement, un=20
contient la valeur "OK" les trois autres la valeur "NOK".
Donc la 1ere fct CpteDom me retourne la valeur "1" la 2nd=20
me retourne la valeur "3"

Qui peut m'aider?

Merci d'avance

5 réponses

Avatar
3stone
Salut,

"Patrick ERIAU"

un petit soucis avec la fonction CpteDom()

Formulaire principal ayant pour source:
TBL1(ID_TBL1, DATE_TBL1, TOTAL_TBL1)
Sous-formulaire ayant pour source:
TBL2(ID_TBL1#, SOC, ETAT, etc)
Champ ETAT = liste de valeur "OK", "NOK", "STANDDBY"

Pour comptabiliser le nombre d'enregistrement du sous-
formulaire contenant dans le champ "ETAT" la valeur "OK",
j'utilise la fonction suivante dans une zone de texte
indépendante placé dans le formulaire:
<snip>


Puisque tu compte dans le sous-formulaire...

une textbox dans le pied de formulaire avec comme source:

=Count(iif("[Etat]=OK";1;0))


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
3stone

=Count(iif("[Etat]=OK";1;0))



heu...

=Count(iif("[Etat]='OK'";1;0))


:-/

--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Patrick ERIAU
Bonjour Pierre

Le résultat qui est retourné est toujours erroné.
La zone de texte de mon form affiche la valeur "4", ce
qui correspond au nombre de ligne d'enregistrement
contenu dans mon sous-form.

Dans ces 4 lignes d'enreg
- 1 ligne contient dans le champ "Etat" la valeur "OK"
- les 3 autres la valeur "NOK".

Ce que je recherche, c'est de pouvoir justement afficher
dans 3 zones de texte indépendantes de mon formulaire,
ces différents résultats.

@+

-----Message d'origine-----
Salut,

"Patrick ERIAU"

un petit soucis avec la fonction CpteDom()

Formulaire principal ayant pour source:
TBL1(ID_TBL1, DATE_TBL1, TOTAL_TBL1)
Sous-formulaire ayant pour source:
TBL2(ID_TBL1#, SOC, ETAT, etc)
Champ ETAT = liste de valeur "OK", "NOK", "STANDDBY"

Pour comptabiliser le nombre d'enregistrement du sous-
formulaire contenant dans le champ "ETAT" la valeur "OK",
j'utilise la fonction suivante dans une zone de texte
indépendante placé dans le formulaire:
<snip>


Puisque tu compte dans le sous-formulaire...

une textbox dans le pied de formulaire avec comme
source:


=Count(iif("[Etat]=OK";1;0))


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------






.



Avatar
3stone
Salut,

"Patrick ERIAU"

Le résultat qui est retourné est toujours erroné.
La zone de texte de mon form affiche la valeur "4", ce
qui correspond au nombre de ligne d'enregistrement
contenu dans mon sous-form.

Dans ces 4 lignes d'enreg
- 1 ligne contient dans le champ "Etat" la valeur "OK"
- les 3 autres la valeur "NOK".

Ce que je recherche, c'est de pouvoir justement afficher
dans 3 zones de texte indépendantes de mon formulaire,
ces différents résultats.



Zut ;-(((

Pas Count(...) mais bien Sum(...)


Tu as 4 enregistrements qui ont un champ nommé [Etat]
(dont tu devrait renommer la zone de texte en "txtEtat")

ensuite, avec le champ en pied de formulaire:

=Sum(iif([txtEtat]='OK'";1;0)



La chaleur, sûrement :O))


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
Patrick ERIAU
Salut Pierre,
Ca marche
Merci

-----Message d'origine-----
Salut,

"Patrick ERIAU"

Le résultat qui est retourné est toujours erroné.
La zone de texte de mon form affiche la valeur "4", ce
qui correspond au nombre de ligne d'enregistrement
contenu dans mon sous-form.

Dans ces 4 lignes d'enreg
- 1 ligne contient dans le champ "Etat" la valeur "OK"
- les 3 autres la valeur "NOK".

Ce que je recherche, c'est de pouvoir justement afficher
dans 3 zones de texte indépendantes de mon formulaire,
ces différents résultats.



Zut ;-(((

Pas Count(...) mais bien Sum(...)


Tu as 4 enregistrements qui ont un champ nommé [Etat]
(dont tu devrait renommer la zone de texte
en "txtEtat")


ensuite, avec le champ en pied de formulaire:

=Sum(iif([txtEtat]='OK'";1;0)



La chaleur, sûrement :O))


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.