Statistiques VBA [Résolu]

Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
- - Dernière réponse : ptitelili059
Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
- 25 nov. 2009 à 10:07
Bonjour,

Je réalise actuellement une application qui permet de gérer les clients d'une entreprise avec une base Access.
J'ai une table Ville qui a pour identifiant un numéro auto et une table Client qui a un champ NumVille faisant référence à l'identifiant de la table Ville.
Je veux afficher certaines statistiques de ma base de données (combien de clients, etc...) et je voudrais savoir dans quelle ville se trouve le plus grand nombre de client mais je ne sais pas comment faire pour avoir cette donnée.


Si quelqu'un pouvait m'aider...
Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
3
Merci
Bonjour

J'ai résolu mon problème. Dans ma table Ville, j'ai rajouté un champ NombreClient et à chaque fois que j'ajoute un client j'incrémente ce champs pour la ville sélectionnée. Ensuite pour savoir la ville la plus fréquentée, je fait :
 select * from Ville order by NombreClient desc

Le premier enregistrement que je fais est forcément la ville qui a le plus de client donc la plus fréquentée

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 144 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ptitelili059
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
57
0
Merci
Salut
Ma première idée serait de faire une requète SQL demandant de compter les "ville_id" dans les fiches Clients et demander une liste classée par ordre de grandeur. Tu n'auras plus qu'à en extraire le premier résultat pour trouvé le gagnant.
Requète du genre (à approfondir) :
Select Count(Clients.Ville_id), Villes.Name
  From Villes, Clients
 Where Clients.Ville_id = Villes.Ville_id
 Group by Clients.Ville_id

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
0
Merci
J'ai essayé ce que tu m'as proposé mais j'ai l'erreur suivante :
"Vous avez essayé d'exécuter un requête ne comprenant pas l'expression spécifié Name comme une partie de la fonction d'agrégat"

Je n'ai pas la moindre idée de ce que c'est
Commenter la réponse de ptitelili059
Messages postés
22
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
8 juillet 2010
0
Merci
Salut,

remplace Villes.Name par le champ ou tu met le nom de la ville dans ta table Villes...
------------
Même joueur joue encore
Commenter la réponse de Cybercraft2003
Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
0
Merci
C'est ce que j'ai fait
En fait ma table Client est composée (en gros)des champs suivants :
- IdClient (numero auto)
- NomClient (texte)
- VilleClient (integer)

Ma table Ville est composée des champs suivants :
- IdVille (numéro auto)
- NomVille (texte)
- CodePostal (integer)

Donc ma requête ça donne :
Select Count(Client.VilleClient), Ville.NomVille
  From Ville, Client
 Where Client.VilleClient = Ville.IdVille
 Group by Client.VilleClient


Mais j'ai toujours la même erreur
Commenter la réponse de ptitelili059
Messages postés
22
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
8 juillet 2010
0
Merci
Ce ne serait pas plutôt :

Select Count(Client.IdVille), Ville.NomVille
From Ville, Client
Where Client.IdVille = Ville.IdVille
Group by Client.IdVille


Mélange pas les pommes de terre et les ananas. C'est pas bon ^^.
------------
Même joueur joue encore
Commenter la réponse de Cybercraft2003
Messages postés
43
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2010
0
Merci
Non, le champs de ma table Client faisant référence à la Ville porte le nom de VilleClient. Donc normalement ça devrait bien être Client.VilleClient = Ville.IdVille
Commenter la réponse de ptitelili059