Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2010, 14h20   #1
Membre à l'essai
 
Inscription : mars 2006
Messages : 126
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 126
Points : 22
Points : 22
Par défaut remplissage dynamique d'une liste déroulante

Bonjour,

J'ai un problème sur un formulaire Access!!

j'essaye de remplir une liste déroulante par rapport à une autre.

2 tables liées par un champs identiques
une liste déroulante >> espèces et une autre habitat
la première je la remplit en fonction d'un champs la 2ème en fonction d'une requête qui me permet de trouver un habitat en fonction d'une espèces et inversement
je créer un événement "afterupdate sur la liste de l'especes pour que la liste habitat se remplit en fonction de l'especes choisit.

mais cela ne marche pas il me donne tjrs toutes les infos du champs habitat
et non pas celle qui correpond à l'espèce.
cela marche pourtant pour access 2003!

merci de votre aide
bernards111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 14h43   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
Peux-tu poster ta requête ?

As-tu regardé la FAQ : "Comment faire en sorte que le contenu d'une zone de liste déroulante dépende de la valeur d'une autre liste ?" ici http://access.developpez.com/faq/?page=zdl#DepZdl ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 15h38   #3
Membre à l'essai
 
Inscription : mars 2006
Messages : 126
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 126
Points : 22
Points : 22
merci de ta réponse

oui j'ai regardé, je pense que je suis pas loin de la solution

mais mon problème est petit peu différent car j'ai trois tables

espèces et habitat sont reliés à une 3éme table qui contient des champs identiques de ces deux tables

ma requête ressemble à ça
Code :
1
2
3
SELECT HABITATS.LB_HAB
FROM HABITATS INNER JOIN (HABITATS_ESPECES INNER JOIN ESPECES ON HABITATS_ESPECES.CD_NOM = ESPECES.CD_NOM) ON HABITATS.CD_HAB = HABITATS_ESPECES.CD_HAB
WHERE (((ESPECES.LB_NOM)=Forms!Requête_GENERALE.espece_box));
mes tables sont
espèce
habitat
habitat_espece

merci de m'aider , je rame là
bernards111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 20h46   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
As-ru bien une instruction du type Me.MaListeHabitat.requery ? Cela va forcer la mise à jour de ta liste dans ton afterupdate ?

Autre test à faire, prend ton SQL et colle le dans une nouvelle requête et regarde si elle fonctionne comme tu veux.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 20h47   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
Change aussi
Code :
Forms!Requête_GENERALE.espece_box
pour
Code :
Forms!Requête_GENERALE!espece_box
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/12/2010, 09h53   #6
Membre à l'essai
 
Inscription : mars 2006
Messages : 126
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 126
Points : 22
Points : 22
bonjour,


oui j'ai bien intégrer l'instruction Me.xxxx.requery dans l'évènement des propriété de la box espèce sur "après changement"

au niveau de ma requête je l'ai mis dans données>contenu des propriété de ma box_habitat!
je pense que le problème est là car lorsque j'exécute cette requête il me renvoie le champs des noms d'habitat mais vide?
et là je vois pas trop le problème!!

merci de votre aide
bernards111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 10h13   #7
Membre à l'essai
 
Inscription : mars 2006
Messages : 126
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 126
Points : 22
Points : 22
Par contre

lorsque je remplace "Forms!Requête_GENERALE!espece_box"
par un nom précis d’espèce il me renvoie bien l'information!!

je comprend pas , j'ai vérifié si c'était à cause de ma première box
j'ai cette requête
Code :
"SELECT ESPECES.LB_NOM FROM ESPECES ORDER BY ESPECES.[LB_NOM];
en sachant que j'utilise le formulaire double affichage
bernards111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 14h01   #8
Membre à l'essai
 
Inscription : mars 2006
Messages : 126
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 126
Points : 22
Points : 22
ok j'ai réussi

Code :
1
2
3
SELECT HABITATS.CD_HAB HABITATS.LB_HAB
FROM HABITATS INNER JOIN (HABITATS_ESPECES INNER JOIN ESPECES ON HABITATS_ESPECES.CD_NOM = ESPECES.CD_NOM) ON HABITATS.CD_HAB = HABITATS_ESPECES.CD_HAB
WHERE (((ESPECES.LB_NOM)=Forms!Requête_GENERALE.espece_box));

Dans ma première requête il me manquait l'identifiant de ma table habitat "HABITATS.CD_HAB"


merci marot_r
bernards111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 18h28   #9
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
Ok fait le test suivant :
  1. crée une requête de test qui reprend ton SQL d'origine incluant le param form.
  2. modifie cette requête pour y ajouter un champ qui va contenir Forms!Requête_GENERALE!espece_box et enlève la clause where.
  3. Ouvre ton formulaire et renseigne les infos dont tu as besoin.
  4. Ouvre la requête de test et regarde ce qu'il y a dans le champ qui affiche le paramêtre.
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web