|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2009 Messages : 9 ![]() |
Bonjour,
J'ai suivi les tutoriels trouvé sur Internet, mais je pense avoir un problème de construction à la base. Je m'explique, j'ai les tables suivantes reliées entre elles (Ref/Id): Menu (IdMenu, NomMenu) MenuRec (IdMenuRec, RefIdMenu, RefIdRecette, Nb de personne...) Recettes (IdRecette, Nom, Pour...) Pour indiquant le nombre de personne pour lequel est prévu la recette. RecIngr (IdRecIngr, RefIdIngredient, RefIdRecette, quantité, unité) Ingredients (IdIngredient, rayon) Mon objectif est d'arriver à sélectionner plusieurs menus et de sortir la liste des courses compilée de ces menus. Autrement dit, j'ai fait une requête (ReqTotalCourses) contenant les champs suivants dont les opérations sont des regroupements: Code :
IdMenu, Rayon, Nom de l'ingrédient, QTot: Somme(([RecIngr]![quantité]/[Recettes]![Pour])*[MenuRec]![Nb de personne]), Unité
J'ai un formulaire avec une liste à choix multiple (LstMenu) où l'utilisateur peut sélectionner plusieurs Menu. Il y a également un bouton (BtnMenu) qui récupère les valeurs de la liste et ouvre l'état "Liste Course". Ce bouton à le code suivant sur clic: Code :
J'ai pensé que le problème pouvais venir de la requête? Je voudrais pouvoir enlever de la requête IdMenu pour que dans l'état n'apparaissent pas les ingrédients Regroupé par Menu mais seulement par rayon. Je ne sais comment faire, si une âme charitable pouvais me donner une direction à suivre, ça serait vraiment gentil! J'ai penser à l'opération "où" pour IdMenu dans la requête, mais je sais pas bien comment ça marche et quoi mettre comme critère? N'hésitez pas à me demander si il manque des indications. Merci d'avance pour votre aide. Cordialement. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
"Où" permet d'utiliser un champ uniquement pour faire un tri ou une condition. Clique sur Où de idmenu. N'oublie pas de mettre en place le regroupement et de faire une somme sur la quantité d'ingrédient. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 9 ![]() |
Bonjour,
Merci pour votre réponse rapide. En effet, j'ai bien un regroupement pour mes champs et une somme pour les quantités d'ingrédient. En revanche, je ne comprend pas ce qu'il faut que je mette comme critère pour IdMenu avec le Où. En fait, c'est le lien entre le code de mon bouton (BtnMenu) de mon formulaire "Choix Menu" et cette fameuse requête que j'ai du mal à saisir... Est-ce qu'il faut que dans le champ IdMenu je fasse référence aux valeurs stockées dans le code du bouton (BtnMenu)? Et si oui comment? Je suis débutante dans l'histoire et il est vrai que j'ai adapté le code sans vraiment comprendre tout... Merci de votre aide. Cordialement. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Normalement ça devrait fonctionner avec le code que tu as mis. Il faut que tu rajoute Distinctrow dans la requete, après le SELECT. Ou aller dans les propriétés de la requète et mettre valeur unique à oui.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2009 Messages : 9 ![]() |
Bonjour,
En effet mon code marche. J'ai mis Distinctrow dans le select de ma requête mais résultat est le même. Je n'ai pas du expliquer correctement mon problème. Je vais essayer d'être plus clair. Pour donner un exemple : dans mon Menu 1 j'ai 3 recettes comprenant toutes les trois de la farine, dans mon Menu 2 j'ai 4 recettes dont 2 contenant de la farine. Lorsque je sélectionne dans ma liste à choix multiple de mon formulaire le Menu 1 et le Menu 2 et que je clic sur mon Bouton, j'obtiens mon Etat comprenant les ingrédients de mes deux menu (et c'est ce que je veux!) Mais pour revenir à mon exemple j'obtiens 2 lignes correspondant à l'ingrédient farine. Alors que je voudrais obtenir une seule ligne pour farine. Ma requête fait donc bien la somme des quantités de farine dans le Menu 1 (farine de la recette 1, farine de la recette 2 et farine de la recette 3) idem dans le Menu 2, mais ne somme pas les quantités farine du Menu 1 ET farine du Menu 2... La requête sql sous jacente à mon état est la suivante: Code :
Je ne sais pas d'où celà vient? De ma requête ou de mon code, ou plus simplement de mon état? D'où mon idée de passer par le fameux critère Où pour le champ IdMenu dans la requête avec un critère faisant référence à la sélection faite dans la liste... mais je ne sais pas si c'est une bonne solution ni comment faire! Merci encore pour votre aide. A bientôt. |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Si tu veux regrouper il ne faut pas indiquer des champs qui ne peuvent pas l'être. Comme IdMenu par exemple.
Tu peux l'utiliser dans un Where mais pas à l'affichage. Code :
Code :
.... WHERE Menu.IdMenu IN ('1','2','10')
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com