Requette SQL vers Access

Résolu
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 - 18 nov. 2014 à 17:22
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 - 19 nov. 2014 à 21:49
Bonjour à tous, :)

J'ai une application VB6 qui attaque une base de données Access.

Je voudrais faire une requette SQL en utilisant la fonction GROUP BY.
J'ai tenté avec un Recordset ou un ADODB, mais ça ne semble pas fonctionner (j'ai des erreurs d'exécution).

Est-ce que c'est possible ?
Par quel moyen ?

Merci d'avance de votre aide ;)

7 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
18 nov. 2014 à 17:30
Bonjour

Ben si ton application attaque ta bdd ...
Montre ce que tu as tenté d'écrire
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
19 nov. 2014 à 08:09
Voilà mon code, qui fonctionne pour des requêtes sans GROUP BY :
Public Db As Database
Public Rs As Recordset

Set Db = OpenDatabase([chemin de la base])
Set Rs = Db.OpenRecordset("SELECT SUM(Points) FROM Enregistrement WHERE Enregistré = True GROUP BY Club ORDER BY Points", dbOpenSnapshot)


Ce code renvoie une erreur du genre "Nombre de paramètre insuffisant, 1 attendu" ou quelque chose comme ça (je n'ai pas moyen refaire l'essai pour le moment pour avoir l'erreur exacte)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 nov. 2014 à 10:44
Bonjour,
SUM implique déjà une notion de groupe
GROUP BY précise cette notion
Question : sur quoi, exactement, veux-tu TRIER ?
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
19 nov. 2014 à 10:52
J'ai une table avec des participants, et chaque participants a un certain nombre de points et un club associé :

Participant | Point | Club
Toto | 5 | Paris
Dupond | 10 | Toulouse
Antoine | 3 | Lyon
Michel | 5 | Toulouse
Jérome | 5 | Lyon

Et je veux un classement par Club :

Club | Total
Toulouse | 15
Lyon | 8
Paris | 5
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 19/11/2014 à 11:08
c'est alors ton tri, qu'il te faut supprimer
A moins (et c'est alors autre chose) que tu ne veuilles un résultat trié par totaux obtenus (et ce n'est alors pas par points et il te faudra dans ce cas faire deux recordsets successifs).
points est un champ. Il n'est pas le total d'un groupe
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
19 nov. 2014 à 11:09
Mon tri, tu veux dire la clause "ORDER BY" ?
Tu penses que c'est ça qui pose problème ?

C'est vrai que la requête ci-dessus n'est pas tout à fait juste, c'est plutôt :
SELECT SUM(Points) AS Total FROM Enregistrement GROUP BY Club ORDER BY Total


Je vais essayer de la supprimer, mais j'avais quand même l'impression que le problème venait de la clause "GROUP BY" ou "SUM". Je teste et te tiens informé.

Merci
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
19 nov. 2014 à 20:52
Bon, je sais pas trop ce que j'ai foutu, mais en fait ça marche ! ET même avec ORDER BY.
J'ai dû me tromper dans les noms de colonne.

Ca donne donc :
SELECT Club, SUM(Points) FROM Enregistrement GROUP BY Club ORDER BY SUM(Points)


Merci de ton aide, et désolé pour ce post "inutile" :)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 19/11/2014 à 21:35
tu avais juste oublié Club après select
le champ après group by doit aussi apparaitre après select
Merci de ton aide, et désolé pour ce post "inutile" :)
non ce n'est pas inutile
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 nov. 2014 à 21:46
C'est surtout parce que, cette fois-ci, son tri est sur SUM(points) et non plus sur Points
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
19 nov. 2014 à 21:49
Oui, il y avait plusieurs erreurs cumulées !
En fait, le "AS" qui permettait de renommer SUM(Points) en Total ne fonctionne visiblement pas.
0
Rejoignez-nous