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"))...
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
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
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..."
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.
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....
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...
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 ;)
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.....
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.
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
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 ! :-)