Rechercher : dans
Par :

[ACCESS] Valeur liste déroulante dependante

Dernière réponse le 5 mai 2008 à 15:45:01 guitarhero77, le 9 mar 2007 à 20:06:09 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.2

1

zenon, le 9 mar 2007 à 22:34:05

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

Répondre à zenon

2

guitarhero77, le 12 mar 2007 à 09:14:24

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 ?

Répondre à guitarhero77

3

zenon, le 12 mar 2007 à 10:41:51

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.

Répondre à zenon

4

guitarhero77, le 12 mar 2007 à 11:40:29

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

Répondre à guitarhero77

5

blux, le 12 mar 2007 à 14:01:54

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...
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

guitarhero77, le 12 mar 2007 à 14:39:10

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 ;)

Répondre à guitarhero77

7

zenon, le 12 mar 2007 à 18:19:26

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.

Répondre à zenon

8

guitarhero77, le 12 mar 2007 à 19:09:52

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

Répondre à guitarhero77

9

zenon, le 12 mar 2007 à 23:32:28
  • +1

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"))...

Répondre à zenon

10

guitarhero77, le 13 mar 2007 à 16:52:13

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 :)

Répondre à guitarhero77

11

zenon, le 13 mar 2007 à 17:21:35

Bonne chance!
n'hésite pas à revenir si ça coince...

Répondre à zenon

12

guitarhero77, le 15 mar 2007 à 11:37:56

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

Répondre à guitarhero77

13

phydeau, le 15 jun 2007 à 16:20:38

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.....

Répondre à phydeau

14

phydeau, le 15 jun 2007 à 18:00:39
  • +2

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

Répondre à phydeau

15

LILOUM44, le 13 déc 2007 à 17:46:28

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.

Répondre à LILOUM44

16

 seblekiller_oupas, le 5 mai 2008 à 15:45:01

Bonjour, ca me fait pareil que toi y a personne qui peut repondre siouplet?

Répondre à seblekiller_oupas