IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Menu déroulant selon requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut Menu déroulant selon requête
    Bonjour, je débute sous access et j'avoue que je coince un peu
    Voilà, j'ai un projet qui consiste à créer une interface contenant le site de production (on en a 2), contenant les parcs machines (3 pour chaque site de prod) contenant les machines de production (en gros c'est : le site xxx possede 3 parcs machines (impression/découpe/collage) et chacun de ces parcs contient xx machines.

    Je voudrais:
    sur mon interface, les différents choix:
    1/ je choisis le site de prod par menu déroulant;

    2/ suivant le site de prod choisi, un autre menu déroulant me permet uniquement de choisir le parcs correspondants au site selectionné

    3/ suivant le site choisi et le parc, je veux pouvoir choisir les machines correspondantes.

    j'espere être clair.

    j'ai réussi à faire une requête concernant les parcs (elle me donne que les parcs du site de 'grenoble' par exemple) par contre je ne sais pas comment l'inclure à la suite du choix de site...
    merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Je me permet de te répondre, car je suis un peu dans le même cas que toi, et voici comment moi j'ai fait (par contre, je pense pas que ce soit la solution la plus simple, mais bon, tu en fais ce que tu veux !) :

    Déjà, ta table ParcMachine doit avoir une clé étrangère vers ta table Site.
    Ta table Machines doit avoir une clé étrangère vers ta table ParcMachine.
    Je pense que ça tu l'a déjà fait.

    Ensuite, moi je passe par VBA, en utilisant des DAO.RecordSet.
    Lorsque tu sélectionne un Site, tu éxécute un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MonRSParcMachine = currentdb.OpenRecordSet("SELECT * FROM ParcMachine WHERE IdSite = " & IdSiteSélectionné & ";")
    Tu auras ainsi dans ton RecordSet tout les enregistrements correspondants.

    En espérant t'aider,
    Bon courage.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    bien,
    j'ai essayé ta technique, je comprend à peu près ce que tu as mis, mais je ne vois pas où placer ce code

    comme tu dis, j'ai bien créé mes tables et les liaisons par clés primaires et clés présentes d'une table à l'autre. ca c'est bon.
    J'arrive également à faire des requêtes et les résultats sortis sont bons (les différents tris suivant le nom du parc etc...)
    voilà encore un ptit peu d'aide me serait nécessaire (je précise que j'ai pas recopié tout ton code à la lettre mais que j'ai bien adapté aux noms de mes tables lol)
    merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Pour placer le code, tu peux, par exemple, placer un bouton dans ton formulaire.
    Plus précisément :
    Tu as ton menu déroulant qui contient les sites de productions, à côté de ça tu rajoute un bouton valider.
    Dans ton bouton valider, tu met ton code pour récupérer le site sélectionné dans ton menu déroulant, pour lire les parcs machines correspondant et pour les afficher dans ton autre menu déroulant.

    Ensuite, tu fais pareil pour avec ton menu déroulant ParcMachines et un autre bouton pour récupérer les machines.


    Si le bouton ne te conviens pas, je pense que tu peux mettre le code dans l'évènement "Sur Clic" de ton menu déroulant.


    Voilà, j'éspère être suffisament clair dans mes explications, sinon dis le moi

    Bon courage.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    bon alors, tout d'abord merci pour l'aide;
    je dis où j'en suis:
    j'ai créé ma table de sites de prod (Site_) qui contient
    nom_site (le nom du site),
    id_site (la clé primaire),
    et id_parc (le lien avec la table des parcs de prod).

    ma table de parcs de prod (parc_) qui contient
    nom_parc (le nom du parc),
    id_parc (la clé primaire),
    nom_site (le lien avec la table des sites de prod)
    et id_machine (le lien avec la table des machines de prod)

    j'ai, suite à cela, créé un formulaire: 2 liste de choix, auxquelles j'ai associé bien évidemment les bonnes tables et pour la liste de choix des parcs j'ai fait clic droit/onglet données/contenu et j'y ai mis:

    SELECT parc_.id_parc, parc_.nom_parc FROM parc_ WHERE parc_.nom_site=Forms!Formulaire1.nom_site;

    pourtant cela ne marche pas, en simu: une boite de dialogue apparait

    ENTRER UNE VALEUR POUR LE PARAMETRE
    Formulaires!Formulaire1.nom_site
    ___________________________
    OK ANNULER

    je ne sais plus trop quoi faire...

  6. #6
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Si tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT parc_.id_parc, parc_.nom_parc FROM parc_ WHERE parc_.nom_site='Forms!Formulaire1.nom_site';
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    "SELECT parc_.id_parc, parc_.nom_parc FROM parc_ WHERE parc_.nom_site='" & Forms!Formulaire1.nom_site & "';"

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    re
    merci pour l'aide,
    j'ai essayé de changer l'écriture mais rien à faire, là j'ai une liste déroulante vierge pour le choix du parc_
    j'ai vu sur 2-3 posts, qu'il fallait rafraichir la liste (en l'occurence ici) des parcs dès lors qu'un site est selectionné
    j'ai vu des instructions comme 'private sub etc', mais ça s'inclut à quel endroit?

    Private Sub lstPays_Change()
    Me.lstVille.Requery
    End Sub

    là, ça vient des FAQ où le principe est le meme (selection d'un pays, puis des villes appartenant au pays)...


    je vais craquer là

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Points : 91
    Points
    91
    Par défaut
    coucou ici
    bon je suis pas un super pro mais j'avais eu le même problème que toi il me semble. L'idée c'est finalement de faire une sorte de formulaire de recherche avec une recherche en cascade qui ferait comme des filtre chaque fois.

    Si par hasard c'est ca que tu cherche, (j'ai lu un peu vite fais et j'ai pas tout compris), Cafeine avait fait un super tuto pour ca. L'idee c'était de mettre le code sur l'événèment afterUpdate comme ca tavais meme pas besoin de mettre de bouton validé.

    Bref je te donne le site :
    http://loufab.developpez.com/recursivite/

    Il y a celui ci qui est plus simple sinon :
    http://access.developpez.com/sources...s#FiltrerListe

    Et il y en a plusieurs comme ca faut chercher un peu dans les codes sources et les tutos.
    Voila si j'ai pu t'aider un tant soit peu ...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Citation Envoyé par guimauve
    j'ai vu des instructions comme 'private sub etc', mais ça s'inclut à quel endroit?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub lstPays_Change()
    Me.lstVille.Requery
    End Sub
    En l'occurence, ce code se trouve ici :
    Tu vas dans les propriétés de ta liste,
    Onglet 'Evènements'
    Case 'Sur changement'
    Là tu clique sur le bouton '...' tout à droite
    Et tu choisis 'Générateur de code'

    => Tu arriveras ainsi dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub lstSite_Change()
    End Sub
    Tu pourras ainsi écrire ton code à l'intérieur pour obtenir quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub lstSite_Change()
    Me.lstParc.Requery
    End Sub
    Voilà,
    Bon courage.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par guimauve
    bon alors, tout d'abord merci pour l'aide;
    je dis où j'en suis:
    j'ai créé ma table de sites de prod (Site_) qui contient
    nom_site (le nom du site),
    id_site (la clé primaire),
    et id_parc (le lien avec la table des parcs de prod).

    ma table de parcs de prod (parc_) qui contient
    nom_parc (le nom du parc),
    id_parc (la clé primaire),
    nom_site (le lien avec la table des sites de prod)
    et id_machine (le lien avec la table des machines de prod)

    j'ai, suite à cela, créé un formulaire: 2 liste de choix, auxquelles j'ai associé bien évidemment les bonnes tables et pour la liste de choix des parcs j'ai fait clic droit/onglet données/contenu et j'y ai mis:

    SELECT parc_.id_parc, parc_.nom_parc FROM parc_ WHERE parc_.nom_site=Forms!Formulaire1.nom_site;

    pourtant cela ne marche pas, en simu: une boite de dialogue apparait

    ENTRER UNE VALEUR POUR LE PARAMETRE
    Formulaires!Formulaire1.nom_site
    ___________________________
    OK ANNULER

    je ne sais plus trop quoi faire...


    Tu crée ton 1er menu déroulant
    Click droit sur Propriété :
    Champ Contenu, tu mets : SELECT (Site_).id_parc,(Site_).nom_site FROM (Site_)
    Champ Nbres colonnes, tu mets : 2
    Champ largeur colonnes, tu mets : 0 (ca cachera la 1ère colonne)
    Champ Colonne liée, tu mets : 1





    Tu crée ton 2ème menu déroulant
    Click droit sur Propriété :
    Champ Contenu, tu mets : SELECT (parc_).id_parc,(parc_).nom_parc FROM (parc_) WHERE ((((parc_).id_parc)=[Formulaires]![Nom de ton formulaire]![Nom de ta liste déroulante du point 1°]));
    Champ Nbres colonnes, tu mets : 2
    Champ largeur colonnes, tu mets : 0 (ca cachera la 1ère colonne)
    Champ Colonne liée, tu mets : 1


    3° reviens dans les propriétés de ta liste déroulante N° 1
    Clique sur les 3 points [...] du champ Après MAJ (onglet événement)
    Choisis Générateur de code
    Entre la zone Private Sub Nomdetalistedéroulante_AfterUpdate()
    et End Sub, tu mets Nomdeta2èmelistedéroulante.Requery

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    merci pour l'explication très détaillée
    je comprend bien les requêtes mais lorsque je choisis le site ça marche,
    mais la liste des parcs reste toujours vide.
    SELECT (parc_).id_parc,(parc_).nom_parc FROM (parc_) WHERE ((((parc_).id_parc)=[Formulaires]![Nom de ton formulaire]![Nom de ta liste déroulante du point 1°]));
    là on fait bien une comparaison entre le nom du site que l'on vient de selectionner et id_parc, est ce que ca ne pose pas problème vu que ce ne sont pas les memes types de variables (liste de texte/numeroauto)

    en tout cas ca ne fonctionne pas...et j'en suis bien deg là je vois pas où est l'erreur
    peut etre je dois créer des requetes à part?
    merci

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    re!
    y'a personne pour m'aider?
    j'ai vérifié un truc, lorsque pour mes 2 listes, je fais une requête en direction de chaque table, ça marche (site_ pour la liste des sites et parcs_ pour la liste de parcs) en direct...pas de problème
    par contre dès que j'essaie de prendre comme référence la liste sites (dessinée sur le formulaire) en mettant comme requête: ...formulaires!formulaire.nom_site là finito, les problèmes commencent.

    y'aurait il à la rigueur quelqu'un pouvant m'aider de A à Z pour créer des tables bidon ainsi que le formulaire et 2 listes déroulantes les plus simples possibles: juste pour piger comment cela fonctionne, après évidemment je bosse de mon coté avec mes vraies tables et là je pourrai repérer l'Erreur...
    merci

  13. #13
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    as tu raffrachi les autre liste apré avoir modifié la premiére?

    si s'est pas ca moi je peut te faire un exemple(j'atten que quelqu'un me répond sur un autre post mais mon sujet est trop pourri)

    as tu définie la source de controle du formulaire en entier?

    cet fai a la rache

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par guimauve

    y'aurait il à la rigueur quelqu'un pouvant m'aider de A à Z pour créer des tables bidon ainsi que le formulaire et 2 listes déroulantes les plus simples possibles: juste pour piger comment cela fonctionne, après évidemment je bosse de mon coté avec mes vraies tables et là je pourrai repérer l'Erreur...
    merci
    Est-ce cela??

    Fichier à dézipper bien sur

  15. #15
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    oui il y a deux pauvre listre déroulante et une table( fai en 10s max, soi indulgen)

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par polo(31)
    oui il y a deux pauvre listre déroulante et une table( fai en 10s max, soi indulgen)

    Hein ???

  17. #17
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    hello
    merci pour ton aide rapide
    je viens d'ouvrir ton truc 'fait à l'arrache comme tu dis' et c'est nickel
    après, à moi de le développer davantage pour les machines

    évidemment je n'avais pas défini la propriété du formulaire...

    par contre, un truc, là tu as fait tout ça sous une seule et même table tandis que moi, j'avais tenté sur 2 tables: sites et parcs avec clés et compagnie

    en tout cas ca fait plaisir de voir que des gens prennent 5minutes pour aider un newbie lol
    merci encore je vais continuer ce projet.

  18. #18
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    guimauve réclame un exemple avec deux menu déroulant dont la liste de choix du second dépend du chois fait au premier?

    si se n'est pas le cas priére de ne pas tenir compte des connerie que je débite!

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par guimauve
    par contre, un truc, là tu as fait tout ça sous une seule et même table tandis que moi, j'avais tenté sur 2 tables: sites et parcs avec clés et compagnie
    As-tu regardé le mien,

    2 tables
    1 formulaire
    2 listes déroulante

  20. #20
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    fait le effectivement sur 2 table (ça n'affichera pas plusieur foi "site1").

    et moi aussi je débute par contre a moi personne ne répond(cause: sujet pouri, mal expliqué je ne sai pa)


    HELP! post: zone de liste modifiable

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Menu déroulant selon deux critères
    Par abdelkarim_1987 dans le forum Excel
    Réponses: 3
    Dernier message: 02/10/2013, 08h07
  2. Réponses: 5
    Dernier message: 15/08/2006, 16h51
  3. Filtrer selon la sélection d'un menu déroulant
    Par Frollo dans le forum Access
    Réponses: 11
    Dernier message: 26/07/2006, 21h13
  4. Problème sur menu déroulant selon requête
    Par Lola21 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 30/06/2006, 11h05
  5. [script]Menu déroulant selon la page en cours
    Par Mitaka dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 11/01/2006, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo