[ACCESS] Valeur liste déroulante dependante

guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
 loustic -
bonjour à tout le monde

voilà ma question j'ai besoin d'aide svp:

voilà j'ai ds une formulaire une liste déroulante avec des valeurs choises par moi, et une autre liste déroulante

je vouddrais que en fonction de la valeur de la 1ère liste déroulante, les valeurs de la 2ème changent est ce possible et comment peut on faire svp ?

merci d'avance
A voir également:

15 réponses

phydeau Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   5
 
Ca y est, j'ai trouvé une réponse intelligente et simple sans avoir a se tapper du code... voir
http://www.info-3000.com/access/listerestreinte/index.php

Ca marche merveilleusement bien et c'est simple
5
zenon Messages postés 726 Date d'inscription   Statut Membre Dernière intervention   180
 
Bon, on peut décomposer:

Tu choisis d'abord sur quel champ tu veux effectuer une recherche: bâtiment, technicien, type de travail...

Puis tu sélectionnes, par exemple un technicien ou un bâtiment et tu listes ce qui les concerne,

Puis tu choisis un enregistrement défini. C'est juste?

tu pourrais le faire avec trois listes

La première liste serait une liste de champs ou une liste de valeurs.

Dans les propriétés, sous l'onglet événement, sur clic, procédure événementielle tu tapes:

Dim SQL As String
SQL = "SELECT DISTINCT TaTable." & Liste1 (ou son nom, évidemment)
SQL = SQL & " FROM TaTable;"
Liste2.RowSource = SQL
Liste2.Requery
End Sub

La seconde afficherait la liste des techniciens, batiments...

Tu procèdes de la même manière en te référant à la liste2 mais tu dois cette fois créer une zone de liste multicolonnes comprenant la clé pour pouvoir ensuite pointer sur un enregistrement défini et ton code SQL ne doit plus comporter de "Distinct"

C'est plus clair? (je suis pas sûr...) Les zones de liste peuvent être créées avec l'assistant mais il faut veiller à ce que les deux premières ne comportent qu'une colonne (Access ajoute automatiquement la colonne clé avec une largeur de 0 cm (les résultats seraient donc "invisibles"))...
2
zenon Messages postés 726 Date d'inscription   Statut Membre Dernière intervention   180
 
Bonsoir,


pas de pb...

dans la requête qui définit les données de ta deuxième liste, tu ajoutes une condition à la fin de ton instruction:
Select... WHERE LeChampATrier=LaValeurRenvoyéeParLaPremièreListe;

Ensuite, dans les propriétés de la première liste, onglet évènement, après MAJ: NomDeLaDEuxièmeListe.Requery
1
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
je m'y suis mis un peu mais non je ne comprend pas , mais bon c'est moi qui n'est pas ne niveau sur le coup tant pis ... j'y reviendrai plsu tard en attendant je poste un autre sujet plus simple lol mais je ne suis pas sur que l'on puisse
1

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

Posez votre question
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
merci

en fait je n'ai pa été assez complet dans ma description je pense
ou je ne cromprend pa la réponse ce qui est fort possible vu mon niveau lol c'est pour çà je me permets de te reposer la question stp

en fait la valeur de la deuxième n'est pas le résultat d'une requete baséé sur la valeur de la première

voilà ce que j'aimerai: ds la première liste je choisi "batiment" et ds la deuxième j'obtiens les nom des batiments que j'ai tapé (par exemple" çàd "A, B C..." si je choisie travaux ds la 1ère je veux avoir "electricité, plomberie..."

etsce la meme chose ?
0
zenon Messages postés 726 Date d'inscription   Statut Membre Dernière intervention   180
 
Tu devrais me donner la structure de ta ou de tes tables...

Pour que cela fonctionne, il faut que "quelque chose" permette de faire un tri sur la deuxième liste et qu'elle soit fondée sur une même table ou requête.

Selon l'exemple que tu donnes, il est peu probable qu'une même table regroupe toutes tes données.

On peut aussi complètement changer la requête sur laquelle est fondée la liste en VB.
0
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
voilà je vais essayer d'expliquer mon projet: en fait je dois gerer les demandes de travaux ds les divers batiments pour la fac où je bosse. ces demandes sont regroupées ds une table ds les champs sont:

-Numero demande
-date de la demande
-nom du batiment (A , B , C...)
-nom de la salle
-type de travaux (elec plomberie...)
-nom de l'agent faisant le travail (X; Y ; Z...)
-date de realisation
-delais
-durée
-cout
-état (en cours ou terminé)

je n'ai qu'une table

en fait je veux faire uen sorte de menu général pour la recherche des demande par critéres:
çàd que ds la page principale je voudrais que ds une prelmière liste déroulante on puisse choisir de chercher par batiment, par agent ou encore type de travaux par exemple

et que si on choisit batiment ds la liste déroulante d'a coté on ai la liste de ts les batiments, ou encore si on choisit type d etravaux a octé on ai le choix entre elec, plomberie....

j'espere avoir été plus clair
0
blux Messages postés 27170 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
en fait la valeur de la deuxième n'est pas le résultat d'une requete baséé sur la valeur de la première
C'est ce que tu as dit avant et tu nous dis le contraire maintenant :
et que si on choisit batiment ds la liste déroulante d'a coté on ai la liste de ts les batiments

T'es versé dans le paradoxe, toi ! ;-)))

Ta deuxième liste sera constituée par une requête qui va chercher tous les éléments rattachés à la valeur choisie dans la première liste... Il faut juste bien faire attention à la modélisation de ta base...
0
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
c'est vrai je m'exprime pa trés bien dsl

pour simplifier p-e imaginons que je puisse avoir la liste de tous les batiments par une requete + regroupement sur le champs batiment qu"'on appele "requete liste batiment" (2 voire plus requetes distinctes) et le meme principe avec "requete liste travaux" peux tu me redonner les etapes pour selon le choix de la liste 1 faire apparaitre les resulat de la requete "liste travaux" ou liste batiment stp"

dsl sur ce coup la je suis long à la comprenure ;)
0
zenon Messages postés 726 Date d'inscription   Statut Membre Dernière intervention   180
 
Rebonjour...

Tu peux sélectionner dans ta première liste grâce à l'argument DISTINCT la liste de tes bâtiments afin d'éviter les doublons:

SELECT DISTINCT TaTable.NomBâtiment FROM TaTable;

puis utiliser la valeur renvoyée comme critère de tri dans la requête de la deuxième liste.
0
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
dsl ms je n'arrive pa à comprendre les solutions sur ce coup là ou j'ai tres mal exprimé mon problème :(

en fait ma deuxième liste va rechercher les valeurs ds la requete "requete" (pour faire simple) du style:

SELECT DISTINCT NomTable.[Nom du champ]
From NomTable

la variable étant [Nom du champs] je ne comprends pa comment recupérer sa valeur à partir du choix de la liste 1
0
guitarhero77 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   9
 
re merci pour cette réponse détaillée je vas essayer de m'y plonger dedans dés que possible voir si je comprens je te tiens au courant :)
0
zenon Messages postés 726 Date d'inscription   Statut Membre Dernière intervention   180
 
Bonne chance!
n'hésite pas à revenir si ça coince...
0
phydeau Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   5
 
J'ai très bien compris la question si jamais tu as réussit, pourrait-tu me faire savoir?

Dans une liste déroulante j'ai les types d'articles, et dans une deuxième les descriptions. Les deux réfèrent à une meme table. J'ai réussit à mettre une condition et le deuxième champ s'adapte, mais voila si je modifie le premier champ «type» les valeurs du deuxième demeurent comme elles étaient le premier coup, comme si la lecture de la condition se se fesait qu'une fois par session.....
0
LILOUM44
 
Bonjour,

Je vous sollicite également car par rapport au doc communiqué ci-dessus par PHYDEAU, je suis bloqué en étape 8 au moment où je dois sélectionner le champ VILLE dans la requête R_Ville.
Au moment ou je valide il me met le message suivant :
AUCUNE VALEUR DONNEE POUR UN OU PLUSIEURS DES PARAMETRES REQUIS.
0
seblekiller_oupas Messages postés 397 Date d'inscription   Statut Membre Dernière intervention   5
 
bonjour, ca me fait pareil que toi y a personne qui peut repondre siouplet?
0
Amigo
 
Ce lien fera votre bonheur, la solution est d'une simplicité que je vous laisse découvrir :
http://office.microsoft.com/fr-fr/access/HA011730581036.aspx?pid=CL100570041036

Bon courage à tous!
0
phydeau
 
ouf 3 ans pour clarifier cette question.....
0
loustic
 
pas clair pour moi, snif
0
loustic
 
je sollicite votre aide car je n'y arrive pas ! je vous explique mon problème:
j'ai une table CLIENT, une table CONTACT et une Table INTERVENTION.dont unchamp Contact est alimenté par la table CONTACT
Lorsque je sélectionne un client dans le formulaire principal, je trouve tous les contacts de ce client dans mon sous formulaire CONTACT. Pour le sous formulaire intervention, il est également lié au client sélectionné mais quand je sélectionne le contact dans la liste déroulante, je visualise tous les contacts de ma table CONTACT alors que je voudrais avoir uniquement les contacts du client en cours...
J'espère avoir été clair et vous remercie pour votre aide ! :-)
0