Access et requete dans zone de liste

Fermé
Rebuffat - 10 mars 2003 à 14:47
 Rebuffat - 12 mars 2003 à 10:04
Bonjour ,

voila mon souci,

J'ai cree un formulaire avec trois zones de liste dans lesquelles je peux effectuer des multiselections.

Ce que je souhaite c'est apres avoir fait mes choix de criteres dans ces differentes zones de liste le resultat s'affiche.
Par exemple je selectionne dans la zone de liste animal la donnée chien
dans la zone de liste age la donne 25 et 30 zone de liste ville = naissance Paris
et je veux voir afficher comme resultat le nom du chien qui se trouve dans une requete de la base.

est ce que quelqu un aurait une petite idee pour m avancer un peu. J ai essaiye des requetes par formulaire mais souci j ai essaye different truc mais je vois pas bien comment faire.

A bientôt merci de votre aide
Rebuffat

7 réponses

Salut Rebuffat,

J'ai eu le même problème que toi. La seule solution que j'ai trouvé a été de programmer la mise à jour.

Pour simplifier: Supposons que tu ais juste ta liste "animal".
Tu la sélectionne et demandes de visualiser ces propriétés. Dans l'onglet "Events", tu clicks dans la zone "On Click" et tu clicks sur les ... à gauche. Tu choisis "Code builder". Quelquechose comme ceci doit apparaître:

Private Sub animal_Click()
End Sub

Tu écris ceci en supposant:

Que le champ de sélection (popup menu) s'appel "animal".
Que la table ou la requête s'apppele "NomAnimal"
Que les champs de cette table ou requête sont:
"Animal" et "Nom_Animal"
Que le champ destiné à afficher le nom de l'animal est "N_animal"

Private Sub animal_Click()
Dim mDB As database
Dim mRs As recordset
Set mDB = CurrentDb
Set mRS = mDB.OpenRecordset("NomAnimal")
mRS.FindFirst "[Animal]= ' " & Me!animal.Value & " ' "
N_Animal.Value = mRS("Nom_Animal").Value
mRS.Close
mDB.Close


Si tu as besoin d'aide, n'hésite pas.
:-)
0
J ai essaye mais apparemment j ao pas du tout comprendre.

Je reprends par rapport à tes explications :

J ouvre les propriétes de ma zone de liste pour lui indiquer le nom.

je l ai nommé zone_de_liste_Animal
Ma requete pour obtenir les infos dans ma zone de liste s'appelle Requete liste animal
dans cette requete j'ai les champs Nom et Domaine.

dans mon formulaire je na i que ma zone de liste avec les donnees du champ domaine.

Ce que je veux c'est voir apparaitre dans mon formulaire les noms correspondant au critere selectionne dans le champ domaine.

que dois je donc mette sur mon formulaire pour voire apparaitre le rersultat de ma selection.
Un sous formulaire? et est ce que cette procedure ecrite plus haut le remplira. si oui que dois je ecrire dans le sous formulaire pour qu il se ratache à la selection faite plus haut.

ps : pour l'instant je n ai pas encore resolu ce probleme avec une simple selection mais apres je veux que ca marche aussi en multiselection alors galere hein...
est ce que tu peux m en dire un peu plus par rapport à ce que je viens d'ecrire
0
Donc, pour un domaine tu peux avoir plusieurs Noms?
En quoi consiste le champ domaine et le champ nom? Peux-tu me donner un exemple?
0
oui pour un domaine je peux avoir plusieurs noms.

Par exemple le domaine " chien de course" et j'obtiendrai dans les noms " Foxterrier" "berger allemand""levrier"
.

les noms obtenus peuvent etre aussi le resultat d'une selection de plusieurs domaines; par exemple

chien de course + resistant+poil long
0

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

Posez votre question
J'y travail et te répond...
0
Je pense avoir ta solution.
(J'ai la version anglosaxone de Access...)

1. Tu crées un query simple pour chaque champ de sélection en faisant un "Group by" (tu clicks sur le symbole "Sigma" dans la barre de menu").

Query Domaine:

Fields: Domaine
Total: Group by

de cette façon la query te donne la liste de tous les "domaines" différents possibles.

2. Tu crées un premier formulaire "Dom" contenant tous les critères de sélection ("Domaine", "Critère1", ....) basés sur les query du point 1.

3.Tu crées un deuxième formulaire "Nom" (de type "tabular" contenant la liste des noms résultant de ta sélection. Les données de ce formulaires sont allimentées par une Query1 contenant tous les champs de sélection et le champ "Nom":

Query1:
Fields: Nom Domaine Critère1
Critère: [Forms]![Dom]![Domaine] [Forms]![Dom]![Critère1]

Remarque: décoche les cases en dessous des critères. Ne laisse que celle en dessous de "Nom" cochée.

4. Tu insère ce formulaire dans le premier.

5. Dans le formaulaire "Dom", tu sélectionne chaque champs de sélection. Dans l'onglet "Events", tu clicks dans la zone "On Click" et tu clicks sur les ... à gauche. Tu choisis "Code builder". Quelquechose comme ceci doit apparaître:

Private Sub Domaine_Click()
End Sub

et tu écris tout simplement:

Private Sub Domaine_Click()
Me.Refresh
End Sub
0
Je vous remercie tous de vos conseils je vais essayer cette derniere solution proposée.

a bientôt et j espere pouvoir vous aider un jour.
0