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 :

Contrôle liste choix dépendant d'un autre contrôle liste choix ? [AC-365]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut Contrôle liste choix dépendant d'un autre contrôle liste choix ?
    Bonjour,

    J'ai un formulaire avec deux contrôles liste de choix, actuellement le deuxième me donne tous les enregistrements disponibles. J'aimerais que ce dernier ne contienne seulement que les enregistrements relatifs au premier contrôle. J'ai effectué beaucoup d'essais mais le mieux que j'ai pu obtenir c'est qu'au chargement je voie ce deuxième contrôle avec seulement les enregistrements relatifs au premier mais lorsque j'affiche les enregistrements suivants le deuxième contrôle est vide. Le dernier essai que j'ai effectué provient du site "https://www.youtube.com/watch?v=7SQb2OqQZ4s[/video" qui donne le même résultat que j'ai déjà mentionné. Tel que demandé sur le site j'ai ajouté le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub dev_bas_reference_Change()
    'AMÉ00630;
    DoCmd.Requery
    End Sub
    Voici les détails :
    Formulaire : FO_DEVELOPPEMENT
    Contrôle 1 : dev_bas_reference
    Contrôle 2 : dev_ver_reference

    Tables en relation un à plusieurs :
    Table 1 : TA_BASES côté un :
    Propriété contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT TA_BASES.bas_reference, TA_BASES.bas_identification FROM TA_BASES INNER JOIN TA_VERSION ON TA_BASES.bas_reference = TA_VERSION.ver_bas_reference ORDER BY TA_BASES.bas_identification;
    Table 2 liée: TA_VERSION côté plusieurs
    Propriété contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TA_VERSION.ver_reference, TA_VERSION.ver_identification, TA_BASES.bas_identification, TA_VERSION.ver_date_disponibilite FROM TA_BASES LEFT JOIN TA_VERSION ON TA_BASES.bas_reference = TA_VERSION.ver_bas_reference WHERE (((TA_VERSION.ver_bas_reference)=[Formulaires]![FO_DEVELOPPEMENT]![dev_bas_reference])) ORDER BY TA_VERSION.ver_identification DESC;
    À titre d'exemple si le premier enregistrement du formulaire contient la valeur 101 pour le contrôle 1 alors tous les enregistrements qui suivent ayant la même valeur vont donner le bon résultat et tous ceux qui ont une autre valeur n'ont rien dans le contrôle 2 et ce même si la table contient l'information nécessaire. Si je créé un nouvel enregistrement le comportement est correct.

    Auriez-vous une idée, je suis certain qu'il me manque juste un petit peu de code mais je n'arrive pas à trouver. J'espère que je suis assez clair.

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Oui c'est un problème avec les formulaires en mode continu ou feuille de données.
    La seule solution que j'ai trouvée c'est d'avoir un champ pour l'affichage et un champ pour la sélection donc 2 champs de saisie au final pointant sur le même champ de données.
    Le champ pour l'affichage n'est pas conditionné, celui pour la sélection est conditionné.

    A+

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut James
    Marot_r que je salue évoque un formulaire en mode continu.
    J'ai beau lire dans tous les sens ton Post#1 tu n'évoques pas de travailler avec un formulaire en mode continu.
    Sinon si tu travailles à partir d'un formulaire unique, normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub dev_bas_reference_Change()
    'AMÉ00630;
    Me.dev_ver_reference.Requery
    End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour marot_r et hyperion13,

    J'avais commencé à travailler sur la solution de marot_r, qui me semble très intéressante, mais lorsque j'ai vu celle d'hyperion13, j'en aie fait l'essai étant donné que je travaille effectivement avec un formulaire unique, mais le résultat est toujours le même.

    Je tiens à préciser qu'au premier affichage de la fenêtre tout fonctionne bien pour le premier enregistrement et tous ceux qui ont la valeur du contrôle dev_bas_reference identique mais si ce contrôle est différent rien n'est affiché dans le contrôle dev_ver_reference et c'est la même chose pour les nouveaux enregistrements aussi je constate que pour ces derniers la liste déroulante de dev_ver_reference affiche seulement les choix reliés à la valeur du premier enregistrement et non ceux de la nouvelle valeur affiché dans dev_bas_reference. En fait la requête SQL semble toujours la même, elle ne semble pas tenir compte du changement de valeur du contrôle dev_bas_reference.

    Ainsi à l'affichage des enregistrements, voici le résultat :

    Séquence d'affichage dev_bas_reference Valeur dev_ver_reference Valeur Remarque dev_ver_reference Liste déroulante
    1 18 aff-01 Après l'ouverture du formulaire. enr. de séq. 1 OK
    2 54 Rien ne s'affiche. enr. de séq. 1
    3 18 aff-01 Même base alors affichage. enr. de séq. 1 OK
    4 13 Rien ne s'affiche. enr. de séq. 1
    5 112 Nouvel enr. rien ne s'affiche. enr. de séq. 5 OK

    Donc pour l'instant je continue avec la solution de marot_r à moins que quelqu'un aie une autre idée.

    Merci à vous deux.

  5. #5
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    J'ai trouvé la solution, la voici :

    J'ai tout simplement renseigné l'événement "Sur réception du focus" du contrôle qui a le focus pour le formulaire en question et en vérifiant si dev_bas_reference est vide ou Null et sinon je lance un Requery sur dev_ver_reference et ça fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub dev_reqprb_reference_GotFocus()
    'AMÉ00630;
    If Nz(dev_bas_reference, 0) <> 0 Then
        Me.dev_ver_reference.Requery
    End If
    End Sub
    Merci car ce sont vos suggestions qui m'ont permis d'en arriver à cette solution.

    À la prochaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2006, 11h11
  2. Réponses: 4
    Dernier message: 19/10/2005, 21h34
  3. Réponses: 3
    Dernier message: 08/10/2005, 00h02
  4. [Formulaire] filtrer liste par choix dans autre liste
    Par vatounet dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2005, 15h57
  5. Réponses: 2
    Dernier message: 14/09/2005, 12h08

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