OVH Cloud OVH Cloud

Compter les clients

4 réponses
Avatar
Marie
Bonjour
Dans un état créé d'après une table commandes, regroupement par code client,
je voudrais compter le nombre de clients qui ont commandé (tous les clients
n'ont pas commandé)
Mais compte(*) me renvoie le nbre de commandes et non de clients.
Existe-t-il une solution, de préférence sans macros ni vba ?

Merci
Marie

4 réponses

Avatar
Raymond
Bonjour.

une précision avant tout:
Dans un état créé d'après une table commandes, regroupement par code
client,

je voudrais compter le nombre de clients qui ont commandé (tous les
clients

n'ont pas commandé)
Si on travaille sur la table commandes et que certains clients n'ont pas

commandé, qui a commandé ces "commandes" ? Il doit donc y avoir un champ de
la table qui doit différencier ces commandes ?

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


"Marie" a écrit dans le message de
news:3f64791e$0$20952$


Bonjour
Dans un état créé d'après une table commandes, regroupement par code
client,

je voudrais compter le nombre de clients qui ont commandé (tous les
clients

n'ont pas commandé)
Mais compte(*) me renvoie le nbre de commandes et non de clients.
Existe-t-il une solution, de préférence sans macros ni vba ?

Merci
Marie




Avatar
Anor
Bonjour Marie

Marie a confié :
| Bonjour
| Dans un état créé d'après une table commandes, regroupement par code
| client, je voudrais compter le nombre de clients qui ont commandé
| (tous les clients n'ont pas commandé)
| Mais compte(*) me renvoie le nbre de commandes et non de clients.
| Existe-t-il une solution, de préférence sans macros ni vba ?
|
| Merci
| Marie

Au lieu de compter depuis la table des commandes,
il faut compter depuis une requête basée sur la table des commandes
, qui ne fera apparaître que le code du client et dont ce champ sera
justement regroupé sur le code client.

select IdClient
from TblCommandes
group by IdClient;

ou "mieux"
select distinct IdClient
from TblCommandes;

Ensuite, un simple = Dcount ("*";"CetteRequete") te fournira le résultat escompté.

Pour le qualificatif de "mieux", j'attends les réactions des copains ;-))
--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
--------------------------------------------------
Avatar
Anor
Bonjour Raymond

Raymond a confié :

| Si on travaille sur la table commandes et que certains clients n'ont
| pas commandé, qui a commandé ces "commandes" ? Il doit donc y avoir
| un champ de la table qui doit différencier ces commandes ?
|

Ah oui j'étais passé à côté de ce "léger détail", qui suppose
que l'intégrité référentielle de cette base n'est pas correctement implémentée,
si on peut mettre des "Null" comme IdClient ...

Dans la solution que j'ai proposée, tous les clients fantômes sont comptés comme 1 seul et
unique.
Donc sortir 1 du résultat ou revoir la structure de la base ;-)

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
--------------------------------------------------
Avatar
Marie
Merci à tous les deux, je vais faire des essais...
Marie

"Marie" a écrit dans le message news:
3f64791e$0$20952$


Bonjour
Dans un état créé d'après une table commandes, regroupement par code
client,

je voudrais compter le nombre de clients qui ont commandé (tous les
clients

n'ont pas commandé)
Mais compte(*) me renvoie le nbre de commandes et non de clients.
Existe-t-il une solution, de préférence sans macros ni vba ?

Merci
Marie