|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Bonjour tout le monde,
Je dois realiser un rapport base sur la table ci dessous mais je bloque sur la derniere etape. Categorie Produits SumOfVentes NomCreateur A Naval 9 kelly A transport 5 alain A transport 4 Bonero A transport 1 david B Construction 3 albert B Construction 7 jojo B Construction 2 yvette B finance 3 divine B finance 6 roger J’ai reussi a grouper par categorie, par Produits, faire la somme des ventes au niveau de chaque Produits, compter les Vendeur pour chaque Produits. Jusque la tout va bien. Le code utilise et le resultat obtenu sont en bas: Code :
Categorie Produits SumOfVentes CountOfNomVendeur A Naval 9 1 A transport 10 3 B Construction 12 3 B finance 9 2 Derniere Etape qui me pose probleme: J’aimerais inclure dans dans le resultat ci-dessus une derniere colonne qui listerait le nom et la part (contribution) de chaque Vendeur dans chaque Produit. Le resulat final ressemblera au tableau ci dessous: Categorie Produits SumOfVentes CountOfNomVendeur NomVendeur-Contribution A Naval 9 1 Kelly-9 A transport 10 3 Alain-5,David-1, Bonero-4 B Construction 12 3 Albert-3, yvette-2, jojo-7 B finance 9 2 roger-6, divine-3 Merci de m’aider. ps: j ai affiche un fichier excel qui contient les tables ci dessus vu que le contenus des tables sont distordus dans le corps de message. merci |
||
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Bonero,
A mon avis, il faut faire le SQL en 3 passes 1ere passe : ta requête actuelle 2ème passe : ta contribution par vendeur Code :
requête tableau croisé entre des 2 requêtes avec Jointure sur categorie, produit et pivot sur nomvendeur
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||
|
|
00
|
|
|
#3 | ||||||||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
J'ai fait ta requête en test chez moi
Regarde si cela te convient 1ere requête Code :
2ème requête Code :
3ème requete Code :
4ème requête Code :
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||||||||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Bonjour Dumas,
Merci de m’avoir repondu mais ce n’est pas ce que je voulais. Je reexplique la derniere etape sur laquelle je bloque. Le resultat final doit comporter 5 colonnes: Categorie, Produits, SumOfVentes, CountOfVendeur ET FINALLEMENT la colonne NomVendeur-Contribution. Cette derniere colonne sera composee de NomVendeur “espace” Ventes ( ie les ventes du NonVendeur). Pour etre plus explicite, voici le contenu de la derniere (ie 5ieme) colonne: Ligne 1 de la colonne 5: Kelly 9 ' c-a-d tous ces elements doivent etre dans une meme "cellule" Ligne 2 de la colonne 5: Alain 5, David 1, Bonero 4 ' c-a-d tous ces elements doivent etre dans une meme "cellule" Ligne 3 de la colonne 5: Albert 3, yvette 2, jojo 7 'c-a-d tous ces elements doivent etre dans une meme "cellule" Ligne 4 de la colonne 5: roger 6, divine 3 'c-a-d tous ces elements doivent etre dans une meme "cellule" merci de ton soutien. |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Bonero,
Pour ton besoin, tu sors des utilisations habituelles du SQL, ce qui te demandera un traitement complexe. En SQL natif, le traitement risque d'être très lourd et pas forcément maintenable, car il te faudra utiliser des notions évoluées de SQL, qui ne sont pas forcément transposables avec Access (le notion de RANK, etc..) La solution la moins complexe à mes yeux serait de combiner des requêtes SQL avec un programme écrit en VBA utilisant DAO ou ADO. Si les notions de recordset et de programmation structurées ne te font pas peur, c'est sur cette voie que je te conseillerais de t'engager. Le principe :
Voila, je ne pense pas que l'on puisse faire plus simple
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
salut dumas,
merci d avoir repondu. je sais bidouiller quelques proprietes de l'objet recordset en ADO. je vais essayer cette suggestion ce soir et je te dirai quoi. je savais des le depart que mon besoin n etait un truc simple a realiser. mais n hesite pas a me faire signe si entretemps tu as d'autres pistes a me suggerer. merci |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Si tu programmes correctement ta procédure, tu devrais même pouvoir l'utiliser directement dans ta requête; c'est une des grandes force d'Access de pouvoir encapsuler une built-in fonction dans du code SQL.
Je ne suis pas sur que cela puisse marcher avec un objet table en sortie, mais ça vaudrait le coup d'essayer
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
merci pour ce tuto,
je m en servirai comme point de depart. le premier sujet #Concaténer plusieurs enregistrements dans une seule colonne # a l 'air de repondre a ma question. je vais le modifier et l'implementer en ADO. |
|
|
00
|
|
|
#10 | ||||
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Bonjour Dumas,
J’ai legerement modifie le code du tuto pour obtenir la function ci dessous. Code :
J’ai integre la function le QueryDesign et j’ai egalement obtenu le result escompte. Le code SQL derriere le QueryDesign est le suivant: Code :
Maintenant, je me demande comment appeler cette fonction dans la fenetre VBA (cad dans une procedure ADO) et obtenir le meme resultat dans un objet Recordset. Merci de me filer le dernier coup de main. Je suis vraiment a mes debuts en programmation VBA(access). |
||||
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Bonero,
Je voudrais m'assurer que j'ai bien compris : Souhaites tu intégrer la fonction RecupListe dans la requête que tu as créée avec l'éditeur de requête, ou bien changer l'origine du SQL dans ta fonction Recupliste ? As-tu pu tester ta fonction RecupListe et vérifier qu'elle marchait bien ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#12 | |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Citation:
j'ai deja reussi a integrer la fonction RecupListe dans une requete creee dans l'editeur de requete. j avais eprouve qlq difficultes dans lorsque jai voulu appeler la mme fonction dans un module de vba. maintenant, c'est regle; jai trouve la solution. grand merci pour ton aide. |
|
|
|
00
|
|
|
#13 | |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com