IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Problème d'affichage de données dans une liste déroulante après réception focus


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Problème d'affichage de données dans une liste déroulante après réception focus
    Bonjour à tous,

    Je rencontre un petit problème concernant l'affichage des données d'une liste déroulante, que je vais chercher via une requete :

    voici la requete

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT etudiant.nom, etudiant.prenom, etudiant.idEtudiant FROM etudiant WHERE idEtudiant NOT IN (SELECT idEtudiant FROM binome WHERE status=TRUE AND idEtudiant<>Forms![Rentrée des classes]!idEtudiant);

    Pour expliquer un peu mon projet, je mets en relation des binomes tuteurs-etudiants (j'ai une table tuteur, une table étudiant, et une table binome qui fait le lien entre)

    Je cherche donc à afficher tous les étudiants qui n'ont pas un binome valide (ou qui n'ont pas de binome) mais en affichant quand meme dans la liste l'étudiant déjà affecté à un binome.

    exemple :

    j'ai trois étudiants : A,B,C
    A est en binome avec le tuteur 1 et B avec le tuteur 2

    Dans la liste, déroulante affichant le binome contenant l'étudiant A et le tuteur 1, je voudrais afficher les étudiants A et C.

    De ce fait, et afin de rendre le tout un peu plus dynamique, vu que j'affiche mon formulaire sous forme de feuilles de données, lors du gain de focus, je lance un petit morceau de code afin de renouveller les éléments de ma liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable18_GotFocus()
    Modifiable18.Requery
     
    End Sub
    Afin de ne pas pouvoir, dans le meme formulaire, affecter 2 fois le meme tuteur ou 2 fois le meme étudiant.

    Du coup, la liste m'affiche bien les personnes n'ayant pas de binome mais de base, aucune valeur n'est sélectionnée. J'ai essayé d'affecter l'idEtudiant à ma valeur par défaut mais cela ne change rien.

    A préciser également, une fois la valeur resélectionnée, lorsqu'on change de ligne (donc d'enregistrement) la valeur redisparait de la liste que l'on vient de remplir.

    Avez vous une idée de ce qui pourrait régler mon problème? (cela dit ai-je été assez clair? )

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Petit détail, lorsque l'on clique dans la liste déroulante pour sélectionner un étudiant, si le binome existe déja, il sélectionne la bonne valeur immédiatement. Si je sélectionne un autre champ dans le formulaire, il ne disparait pas. C'est uniquement lorsque je veux sélectionner un valeur dans cette liste mais dans un autre enregistrement que la première valeur disparait. j'ai donc l'impression que le rafraichissement de ma requete dans le getFocus reset la valeur sélectionnée dans la liste de mes autres enregistrements.

    Avez vous une idée de comment lancer la requete uniquement pour l'enregistrement que je demande de vérifier et pas pour toutes les listes déroulantes?

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Il y a deux choses dans une zone de liste. La valeur et la liste.
    Si la valeur n'est pas dans la liste, elle n'est pas affichée mais existe quand même.
    Le problème dans un formulaire en mode continu ou feuille de données, c'est que la liste est commune à tous les enregistrements.
    Il n'y a pas une liste distincte par enregistrement.
    Or comme ta liste exclu la plupart des étudients listés dans ton formulaire, même si le champ a bien une valeur ainsi que la zone de liste (propriété Value) cette dernière ne l'affiche que si la valeur est dans la liste.

    Pour illustrer ce que je viens d'écrire, fais cette expérience :
    Dans ton formulaire, en mode création, duplique la zone de liste (Copier/Coller).
    Remplace le contenu par
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT etudiant.nom, etudiant.prenom, etudiant.idEtudiant FROM etudiant
    et mets la propriété Vérouillé à Oui.
    Les deux zones de listes auront le même champ source, mais la deuxième n'aura pas de restriction au niveau du contenu et pourra afficher n'importe quel étudient.
    Elle sera en 'lecture seule' car verrouillée.

    Je ne connais pas de solution à ce problème, si ce n'est ouvrir la liste restreinte via un autre formulaire, comme une sorte de boîte de dialogue.

    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    tout d'abord merci de ton aide,

    Effectivement la solution que tu proposes me permet d'avoir tous les étudiants dans ma liste. C'est ce que j'avais avant. Mais mon but est justement de limiter les etudiants à ceux qui n'ont pas de tuteur afin de pouvoir plus facilement les affecter.


    Le problème dans un formulaire en mode continu ou feuille de données, c'est que la liste est commune à tous les enregistrements.
    globalement, ca résume bien mon problème.

    Je crois que je vais faire un sous formulaire, ca allourdira un peu l'interface, mais ca me simplifiera la vie

    Néanmoins je reste ouvert à toute solution proposée pour résoudre mon problème

Discussions similaires

  1. [Toutes versions] affichage de données d'une liste déroulante dans un sous-form
    Par meymarc67 dans le forum VBA Access
    Réponses: 0
    Dernier message: 14/12/2013, 00h19
  2. [AC-2010] Mise en forme de l'affichage des données dans une liste de choix déroulante
    Par Nephi dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 17/09/2010, 13h40
  3. Affichage des données dans une LISTE dans projet GWT
    Par sino100100 dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 27/04/2009, 19h03
  4. [MySQL] Affichage de champs dans une liste déroulante
    Par mealtone dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/10/2008, 18h06
  5. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo