Access 2007 Liste déroulante dans une requête

Résolu/Fermé
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 - 7 janv. 2008 à 14:05
 k1981aiss - 11 avril 2011 à 00:36
Bonjour à tous.

J'espère que vous pourrez m'éclairer sur ce point. Ma base de données à pour but de stocker les coordonnées de salariés et d'afficher les formations qu'ils possèdent et quand ils doivent les repasser.

J'explique mon problème.J'ai une requête (Liste des formations par salarié) qui affiche le Nom, Prénom d'un salarié, et toutes les formations qu'il possède. Il y a 3 champs: Nom, Prénom, formation.

Le champs Nom a pour critère [Quel est son nom?]
Le champs Prénom a pour critère [Quel est son prénom?]

J'aimerais à la place de celà (c'est à dire à chaque fois taper le nom exact du salarié), avoir une liste déroulante qui affiche tous les Noms et Prénoms des salariés pour pouvoir ensuite en sélectionner un et voir ses formations.

J'ai chercher les explications sur ce forum et sur d'autres. En vain ...
J'espère que quelqu'un pourra m'aider. Merci à vous, je suis tout ouïe.

8 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
7 janv. 2008 à 20:33
La réponse est: Impossible dans une requête. Désolée...

Par contre, ce que tu peux faire:
Tu crées un formulaire indépendant (que j'appelle Choix) dans le quel tu mets deux zones de liste. La première est alimentée par les noms de ta table (ChoixNom) et la deuxième par les prénoms (ChoixPrénom).
Et ta requête aura des critères du style Forms!Choix!ChoixNom
Pour faire un critère de ce genre, tu peux faire un clic droit dans la zone critères et choisir créer. Ca t'ouvre un petit assistant pas trop compliqué à comprendre... Ou tu tapes manuellement.

Si tu veux faire ça très bien:
Tu modifies la requête sur laquelle est basée la première liste en lui mettant un regroupement pour que "Dupont" n'apparaisse pas 3 fois si tu as 3 Dupont
Tu modifies la deuxième en mettant un critère pour le nom (Forms!Choix!ChoixNom) pour que tous les prénoms n'apparaissent pas, seulement ceux de tes trois Dupont
Et, cerise sur le gâteau, tu mets un p'tit coup de VB, pour que la deuxièle liste s'actualise chaque fosi que tu choisis un autre nom: Propriété après MAJ, un p'tit clic sur le bouton à trois points, générateur de code... Juste un Me!ChoixPrénom.Requery

Et bien sûr ensuite un bouton qui lance ta requête!
6
GRoM34 Messages postés 4 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 28 mai 2008
23 mai 2008 à 17:54
Salut LatelyGeek,


J'ai un problème similaire....

Je m'explique, j'ai dans ma base de données 3 tables :
- table zones : champs (ID zone, zone, commercial)
- table clients : champs (ID clients, nom client, département, ID zone [servant a lier la table à la table zone])
- table projets : champs (ID projet, n° projet, statut marché, type de marché, type de mode, Commercial terrain, ID client[servant a lier la table à la table clients])

En autres, mon objectif est d'avoir un formulaire "critères de choix" afin de m'afficher toutes les entrées de la base de données qui dépendent de ce/ces critères.

J'ai donc créé un formulaire indépendant "criteres", sur lequel j'ai placé des listes déroulantes :
- liste zone
- liste commercial
- liste département
- liste nom client
- liste statut marché
- liste type de marché
- liste type de mode
- liste commercial terrain


j'aimerai pouvoir sélectionner à ma guise, juste statut marché par exemple. Ou alors, sélectionner une zone et type de marché uniquement.

Je n'y arrive pas. Pour le moment je ne peux que choisir dans l'ordre, une zone, qui restreint donc le nombre de commercial, qui restreint donc le nombre de département.... et ainsi de suite en cascade....

Saurais tu m'aider?

Merci par avance de ta réponse.

Cdlt,

GRoM
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550 > GRoM34 Messages postés 4 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 28 mai 2008
23 mai 2008 à 18:03
Tu dois expliquer à Access que si tu ne remplis pas un chmap critère, c'est que tu veux tout.

Ca donne, dans le critère de ta requête:

Comme VraiFaux(EstNull(Forms!NomFormulaire!ListeZone)"*";Forms!NomFormulaire!ListeZone)

Tu vois le principe?
0
GRoM34 > LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023
23 mai 2008 à 22:14
merci à toi LatelyGeek,

J'ai tout de même une petite question "de précision" pour pouvoir faire des listes qui soient clean dans leur constuction....

Pourrais tu me dire / corriger les étapes de construction de mes listes pour faire quelque chose de nickel :

1/ Je créé un formulaire indépendant que je nomme "criteres"
2/ Je crée une requete "rqt zone" qui comprends
- table zones (et je sélectionne les champs : ID zone, zone, commercial)
- table client (ID client, nom, departement, ID zone)
- table projet (ID projet, N° projet, status marché, type de marché, type de mode, commercial terrain, ID client)
3/ je créé une liste déroulante "zone" sur mon formulaire "criteres" à l'aide de l'assistant
"Je veux que la liste déroulante recherche les valeurs dans une table/requete"
puis je sélectionne ma "rqt zone"
puis je sélectionne tous les champs disponibles
puis je choisis tri sur "zone" par ordre croissant
puis je mets toutes les colonnes à zéro sauf la colonne "zone"
puis je choisis le champ "zone" à stocker dans la base de données
puis je nomme cette liste "zone"
Enfin dans propriétés de ma liste, dans autres, je la nomme "zone"
4/ Je créé une requete "rqt commercial" exactement de la même manière que pour la "rqt zone"
5/ je créé une liste déroulante "commercial" exactement pareil que pour la liste "zone", sauf que l'ordre de tri, la colonne qui n'est pas à zéro et le champ à stocket, ainsi que le nom sera maintenant "commercial'.
6/ J'ouvre ma requete "rqt zone" en mode création
dans la partie critères du champ "zone", j'indique Comme VraiFaux(EstNull(Forms!criteres!zone)"*";Forms!criteres!zone­)
7/ j'ouvre ma "rqt commercial" et je fais pareil avec "commercial"
8/ j'ouvre mon formulaire en mode création dans propriétés, évènnement, après MAJ, de ma liste "zone", je clique sur "..."
là j'écris :
Private Sub zone_AfterUpdate()
ICS = zone.Column(2)
Me.Refresh
End Sub


Question :
Est ce que c'est une bonne manière de créer mes listes déroulantes? requetes, ...
Comment peut tu faire un "regroupement" dans ce genre de requete? chez moi ca n'a pas l'air de marcher....

merci de ta réponse en tout cas...

GRoM
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550 > GRoM34
23 mai 2008 à 23:13
Zut, c'est trop compliqué pour que je réponde ce soir.

Si tu me vois pas revenir demain, rebipe-moi, d'acc?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550 > GRoM34
24 mai 2008 à 10:14
Non, ça ne va pas, ce que tu fais.

Tu mets trop de champs dans les requêtes de tes lustes déroulantes.

La première ne doit contenir que les zones, avec un regroupement. (Elle alimente Zone)
La deuxième contient les commerciaux et les zones pour y mettre un critère faisant référence à Zone et disant
VraiFaux(EstNull(Forms!criteres!zone)"*";Forms!criteres!zone­)

Sur la propriété Après MAJ de zone tu mets juste me!Commercial.Requery après avoir cliqué sur "..."

Je comprends pas ce que tu veux en faisant
ICS = zone.Column(2)
Me.Refresh
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
8 janv. 2008 à 18:50
Salut CaPit

Bien sûr, les deux listes sont basées sur deux requêtes différentes. Une pour le nom, une pour le prénom...
En fait ça serait plus rationnel de faire un seul champ dans lequel tu concaténerais le nom et le prénom, mais je pense qu'il vaut mieux commencer par du facile.

Un regroupement, ça s'obtient en cliquant sur le bouton qui ressemble à celui de la somme automatique d'Excel bien qu'il n'ait pas grand chose à voir. Une ligne "opération" apparaît, et contient par défaut un regroupement, qui permet de ne faire apparaître chaque donnée qu'une fois.

Oui, la requête sera lancée à partir du formulaire, et l'état (dont tu n'avais pas encore parlé...) sera basé sur cette même requête! Tu peux aussi lancer l'état à partir du formulaire, c'est ce que tu as de mieux à faire. (Choisi le Bouton de Commande de la barre d'outils et laisse toi guider, tu verras, c'est facile)
2
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
14 janv. 2008 à 22:04
Je m'explique.

J'ai un menu contenant plusieurs boutons, comme par exemple:

MENU GENERAL

> Bouton Renseigner un prénom (Lance un formulaire)

> Bouton Rensigner des coordonnées (Lance un formulaire)

> Bouton Affichage d'état (Lance sous menus)


SOUS MENUS (affiche d'état)

> Bouton Affiche liste des noms

> Bouton Affiche coordonnées d'une personne

>>>> Bouton RETOUR au menu général<<<<

En espérant que vous puissiez m'aider ;)
1
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
23 janv. 2008 à 11:15
C'est bon, j'ai trouvé la solution tout seul.

Pour faire un bontoun retour (au menu général) dans un sous-menu, il fallait juste (à l'aide l'assistant de gestionnaire de menu général), choisir le menu général. C'est tout bête.

Pour ce qui est de la liste c'est bon, et le menu aussi. Ma base de donnée est donc finie et parfaitement fonctionnelle.
Merci pour l'aide ;)
1

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

Posez votre question
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
8 janv. 2008 à 13:25
Tout d'abord merci à toi LatelyGeek.

Par contre je suis exposé à un problème.
La 1ere partie du résonnement qui consiste à creer un formulaire indépendant, là dessus, aucun soucis.
Par contre la deuxième partie "Si tu veux faire ça très bien: ..." je crois que je n'ai pas tout compris. Ou du moins les premières lignes.
Du style, les 2 listes sont basées sur deux requêtes différentes? Qu'entend tu par regroupement?

La requête sera donc toujours lancée à partir d'un formulaire? Du coup pour l'état correspondant que faire?

Désolé pour toutes ces questions, mais elles sont nécessaires pour ma base de donnée.

Merci encore en tout cas ;)
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
9 janv. 2008 à 11:44
Merci pour toutes ses réponses et leur clareté. Ce point n'est pas très bien expliqué sur internet.
Grâce à celà j'ai réussi à faire toutes mes listes intégrées dans mon menu général. Ca fonctionne parfaitement.

En parlant de menu général, il me reste une question qui peut semblée simple mais qui a son importance.
Dans mon menu général (qui est un formulaire géré par l'option Gestionnaire de Menu Général), j'ai plusieurs éléments (boutons) qui servent à afficher des formulaires ou états, mais il permet aussi d'afficher des sous-menu.
La question est, "peut-on créer un bouton retour pour un sous-menu, si oui, comment faire?"

Merci encore pour l'aide que vous m'apportez.
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
14 janv. 2008 à 19:10
Qu'est ce que tu entends par "bouton retour pour un sous-menu"???
0
thelegendofben Messages postés 9 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 26 mai 2008 4
23 mai 2008 à 11:40
bonjour
voila g un ptit souci
g une base de donnée sur access
j'ai une table département, une table commune, et une table theme(repartition des bibliotheques,et autres établissements par département)
je voudrai faire une requête avec une liste déroulante
c'est a dire qu'on pourrai sélectionner le département via cette liste
et il faudrait que ma liste thème soit mise a jour lors de la sélection
c'est a dire que si je choisi tel département ,il ne reste que les établissement des ce departement
et ensuite une autre liste déroulante pour choisir le thème
je c pas si g été très clair
jsuis pas très doué avec access
merci vraiment si quelqun pouvais m'aider car c super important!!!!
0