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 :

Sélection dans liste deroulante correspondant à critère [AC-2016]


Sujet :

IHM

  1. #1
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut Sélection dans liste deroulante correspondant à critère
    Bonjour,
    Je souhaite que lorsque l'on sélectionne la catégorie "Alimentation", la sous-catégorieFK n'affiche dans le formulaire que les rubriques qui correspondent à l'alimentation. Je pense que ce doit-être une requête, mais je ne sais pas le faire.
    Merci de votre aide
    Nom : sous_cat1.png
Affichages : 94
Taille : 321,2 Ko
    Fichiers attachés Fichiers attachés
    Le mieux est l'ennemi du bien

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    si tu veux rester sur une macro Access, je ferai comme ceci:

    Nom : _1.JPG
Affichages : 135
Taille : 44,8 Ko

    Sinon, en VBA il faut utiliser la propriété RowSource (Contenu en français) de la liste

    PS: en principe pour stocker une clé étrangère, il est préférable d'utiliser la clé unique numérique (ID_Categorie) plutôt que son libellé (Categorie), plus efficace pour les jointures
    d'autant plus qu'on peut changer un libellé, si par exemple, on s'est trompé (faute de frappe, erreur de saisie) ce qui peut rendre la mise à jour compliquée ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    si tu veux rester sur une macro Access, je ferai comme ceci:

    Nom : _1.JPG
Affichages : 135
Taille : 44,8 Ko
    Merci pour ta réponse, mais je suis navré, je ne trouve pas "DéfinirValeur"
    Nom : DefinirValeur.png
Affichages : 84
Taille : 4,3 Ko
    Le mieux est l'ennemi du bien

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    oui, c'est vrai, il faut appuyer sur le bouton "Afficher toutes les actions" pour les actions "sensibles"
    encore une stupidité de Microsoft, comme si masquer certaines actions pouvait empêcher les fausses manipulations ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Rebonjour tee_grandbois,
    J'ai réussi à mettre la macro, mais la liste déroulante reste désespérément figée.
    J'ai loupé quelque chose ?
    Le mieux est l'ennemi du bien

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    puis-je voir ce que tu as fait ? (une impression d'écran)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Je n'ai rien modifié sur les propriétés des données
    Nom : SsCat_1.png
Affichages : 82
Taille : 11,1 Ko
    Nom : SsCat_2.png
Affichages : 82
Taille : 3,6 Ko
    Le mieux est l'ennemi du bien

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    c'est le bon code sauf qu'il faut le mettre sur la liste déroulante de la catégorie, pas celle de la sous-catégorie
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    C'est fait, mais l'écran reste figé comme avant avec la liste complète visible et inactive.
    Lorsque je clique sur une catégorie, j'ai une boîte de dialogue :
    Nom : SsCat_3.png
Affichages : 83
Taille : 183,1 Ko
    Je tape n'importe quoi et j'ai le n'importe quoi qui s'affiche avec un nombre de fois égal au résultat escompté.
    Nom : SsCat_4.png
Affichages : 82
Taille : 238,7 Ko
    Fichiers attachés Fichiers attachés
    Le mieux est l'ennemi du bien

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    je regarde la dernière version
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    tu as oublié l'accent sur Sous-CatégorieFK, comme quoi, il est mieux de faire au plus simple pour le nommage des champs (pas d'espaces, de caractères accentués ou réservés ...):
    ancien code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT T_SousCategories.[Sous-CategorieFK] FROM T_SousCategories where Categorie=""" & [txt_Categorie] & """"
    nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT T_SousCategories.[Sous-CatégorieFK] FROM T_SousCategories where Categorie=""" & [txt_Categorie] & """"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Merci tee_grandbois, cela fait plaisir, je rentre du marché, un petit accent en moins et tout fonctionne. Je vais reprendre toute ma table (accents, clé et cie...)
    Le mieux est l'ennemi du bien

  13. #13
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Bonjour tee_grandbois,
    J'ai modifié mes tables pour les rendre plus accessibles. Ainsi la table de sous-catégories ne comporte plus le nom des Catégories, mais une référence à la table Catégorie.
    Nom : sous_cat4.png
Affichages : 67
Taille : 18,1 Ko
    Du coup dans le formulaire sous-Catégories, pour la lst_Catégories, dans la procédure "Après MAJ" je ne sais plus sur quel champ me référencer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With CodeContextObject
            DoCmd.SearchForRecord , "", acFirst, "[Categorie] = " & "'" & Screen.ActiveControl & "'"
            .lst_CategoriesSousCat.RowSource = "SELECT t_CatSsCat.[SousCategorie] FROM tCat_SsCat where CategorieFK=""" & .lst_Categories & """"
        End With
    Les champs CategorieFK et lst_Categories n'étant pas correspondant.
    Fichiers attachés Fichiers attachés
    Le mieux est l'ennemi du bien

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    dans la propriété "Contenu" de la liste des catégories, il faut ajouter la colonne CategorieFK pour pouvoir filtrer la liste des sous-catégories:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT T_Categorie.Categorie, t_CatSsCat.CategorieFK FROM t_CatSsCat LEFT JOIN T_Categorie ON t_CatSsCat.CategorieFK = T_Categorie.ID_CategorieFK;
    ensuite, dans la procédure "After_Update" de lst_Categories, il faut filtrer les sous-catégories avec la valeur de la colonne ajoutée (Column(1)) en enlevant les guillemets superflus puisqu'on ne filtre plus un champ de type texte (Categorie) mais numérique (CategorieFK). Il faut aussi ajouter l'identifiant ID_SsCat pour pouvoir par la suite se positionner sur l'enregistrement contenant la sous-catégorie choisie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub lst_Categories_AfterUpdate()
    On Error GoTo Macro11_Err
     
        With CodeContextObject
            DoCmd.SearchForRecord , "", acFirst, "[Categorie] = " & "'" & Screen.ActiveControl & "'"
            .lst_CategoriesSousCat.RowSource = "SELECT SousCategorie, ID_SsCat FROM t_CatSsCat where CategorieFK=" & .lst_Categories.Column(1)
        End With
     
     
    Macro11_Exit:
        Exit Sub
     
    Macro11_Err:
        MsgBox Error$
        Resume Macro11_Exit
    End Sub
    code à mettre sur l'évènement "Après MAJ" de la liste lst_CategoriesSousCat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub lst_CategoriesSousCat_AfterUpdate()
    On Error GoTo SousCat_Err
        DoCmd.SearchForRecord acDataForm, Me.Name, acFirst, "[Categorie] = '" & lst_Categories & "' AND ID_SsCat=" & Me.lst_CategoriesSousCat.Column(1)
     
    SousCat_Exit:
        Exit Sub
     
    SousCat_Err:
        MsgBox Error$
        Resume SousCat_Exit
     
    End Sub
    ci-joint la base modifiée au cas où ... Essai_SousCat3.zip
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  15. #15
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    Je continue mes demandes d'aide sur le même sujet, peut-on trier la liste déroulante : lst_CategoriesSousCat dans l'ordre alphabétique ?
    Merci de votre aide précieuse.
    Fichiers attachés Fichiers attachés
    Le mieux est l'ennemi du bien

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

Discussions similaires

  1. Requête avec critère dans liste deroulante
    Par dj pimousse dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/08/2012, 22h43
  2. probleme de date dans liste deroulante
    Par sebos21 dans le forum Access
    Réponses: 3
    Dernier message: 25/05/2006, 00h43
  3. [VBA] Pas de choix dans liste deroulante = ALL
    Par hugo69 dans le forum Access
    Réponses: 4
    Dernier message: 04/05/2006, 12h03
  4. Lecture choix dans liste deroulante
    Par angelevil dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 16h20
  5. [SQL] récupérer sélection dans liste déroulante
    Par nerick dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/12/2005, 11h30

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