Sous formulaire lié à plusieurs listes déroulantes

Signaler
Messages postés
40
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
6 octobre 2020
-
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
-
Bonjour à tous,


J'ai un formulaire comportant (pour l'instant) deux listes déroulantes, une avec les types d'outil en stock, l'autre avec les spécificités des types d'outils (filtrée par la première). Le but du formulaire est de vérifier la disponibilité les outils dans le stock.

J'aimerais afficher dans un sous formulaire les résultats en fonction de ce que l'utilisateur veut filtrer, à savoir simplement le type d'outil ou la spécificité. Or je n'arrive pas à combiner les deux dans un même formulaire.

J'aimerais par la suite ajouter d'autre listes en cascade, pour affiner le plus possible la recherche.

Aussi, je n'arrive pas à appliquer SELECT DISTINCT à la deuxième liste.



Voici mon fichier : https://we.tl/t-zkNdvkfBJ7

Le formulaire en question s'appelle "#f_rechercher_type"


Merci d'avance pour votre aide !

6 réponses

Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
bonjour, je ne vois pas où, dans ton fichier, tu essaies de faire quoi, ni ne comprends ce que signifie "appliquer SELECT DISTINCT à la deuxième liste".
Messages postés
40
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
6 octobre 2020

J'aimerais que lorsque l'utilisateur sélectionne un type d'outil dans la première liste, toutes les références de ce type d'outil apparaissent, et que si il décide de sélectionner en plus un détail dans la deuxième liste, toutes les références de ce type d'outil plus ce détail apparaissent.

Actuellement, dans la deuxième liste, chaque détail de chaque outil apparait.
Or il y en a en commun. J'aimerais qu'il n'y ai qu'une seule fois le nom de chaque détail (j'ai essayé via la commande SQL "SELECT DISTINCT").
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
tiens, en fait, je ne trouve pas de formulaire nommé "#f_rechercher_type".
j'avais probablement regardé un autre formulaire.
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
tu écris "je n'arrive pas à appliquer SELECT DISTINCT à la deuxième liste" et "j'ai essayé via la commande SQL "SELECT DISTINCT"", et tu n'expliques pas le résultat obtenu, ni en quoi cela n'est pas ce que tu attends.
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
je vois que tu fais
SELECT DISTINCT [#tstock].ID, [#tstock].DETAIL

pourquoi inclus-tu ID?
Messages postés
40
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
6 octobre 2020

Pour la commande SQL, j'ai expliquer un peu plus haut mais j'ai du mal m'exprimer.

J'aimerais faire des listes en cascade.
Dans ma table source "#tStock", j'ai 220 lignes (certaines références sont en plusieurs fois et il n'y a que deux types d'outils différents).
Ma deuxième liste "liste_spé" me donne les 220 détail des outils (un par référence donc). Or, il n'y a que 4 ou 5 détails différents.
J'aimerais que ma "liste_spé" regroupe et me donne que les 4 ou 5 détails différents, qui lorsque j'en sélectionne un, me donne toutes les références avec ce détail.
Je suis passé par "SELECT DISTINCT" car c'est la méthode que je connais, mais ça n'a pas l'air d'être la bonne.

J'ai inclus ID car c'est ma clé primaire. J'ai essayé sans, et la liste déroulante ne me sort aucun résultat ... J'en ai donc déduit qu'il est nécessaire.
Je pense que le SELECT DISTINCT s'applique au champ ID, qui n'a aucun doublon (car clé primaire). Or je ne sais pas comment régler ceci.
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
peux-tu faire un petit effort, et préciser le nom correct du formulaire dont il s'agit?
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
ta déduction n'est pas correcte.
tu as construit ta liste sur base d'une requête qui retourne deux colonnes, la seconde étant DETAIL.
tu dois maintenant construire la liste sur base d'une requête qui ne retourne qu'une seul colonne.
tu pourrais adapter la requête pour continuer à retourner deux colonnes, mais ce n'est pas très propre.
Messages postés
40
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
6 octobre 2020
>
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020

Voici la commande mise à jour et fonctionnelle dans le formulaire "f_chercher_type" :
SELECT DISTINCT [#tStock].DETAIL, [#tStock].DETAIL FROM [#tStock] WHERE ((([#tStock].TYPE)=[liste_outils])); 


Merci pour ce point !
Messages postés
40
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
6 octobre 2020

Maintenant j'aimerais que mon sous formulaire affiche le stock en fonction de ce que l'utilisateur saisi : si il ne sélectionne que le type d'outil, il doit afficher tous ceux en stock, si il sélectionne en plus le détail, le résultat doit s'affiner en conséquence.

Pour ce faire, j'ai définit ma requête "rAffichage" comme objet source de mon sous-formulaire. Dans la requête, j'ai essayé de remplir la ligne "critère" des champs "TYPE" et "DETAIL", mais je ne sais pas vraiment quoi remplir pour que cela fonctionne.
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
tu veux, au moment où le bouton "recherche" est cliqué, appliquer un filtre aux données du sous-formulaire. un filtre est, dans ce cas, parfaitement suffisant, inutile de chipoter dans la requête source du sous-formulaire.
Messages postés
12724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
avant d'aller plus loin, je pense utile de mettre un peu d'ordre dans ta base:
- tu te prends les pieds dans de multiples objets qui se ressemblent, ont des noms similaires, et sont plus ou moins utilisés. par exemple, tu m'avais indiqué que le formulaire était #f_rechercher_type", et ce formulaire n'existe pas.
- tu utilises simultanément deux tables, #tStock et #tStock2, qui ont des structures et/ou des contenus différents.
- tu as une table tOutil, que tu utilises parfois, tandis que tu enregistres parfois le nom de l'outil, et pas son id, dans la table stock.

qu'en penses-tu?