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 :

Listes déroulantes liées dans un sous formulaire avec contôle enregistrement en cours uniquement [AC-2010]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut Listes déroulantes liées dans un sous formulaire avec contôle enregistrement en cours uniquement
    Bonjour,

    J'avais posé ma question il y a un petit moment mais je n'ai pas eu de réponse et n'ai toujours pas trouvé de solution convenable de mon côté.

    J'ai deux champs dans un sous formulaire avec chacun une liste déroulante, et j'ai effectué un contrôle pour restreindre les possibilité dans la liste déroulante de mon second champ selon la valeur du premier champ.

    Mon pb est que ce contrôle ne s'applique pas seulement à l'enregistrement en cours mais à l'ensemble des enregistrements de la table associée aux sous formulaire... Du coup si je souhaite passer d'un enregistrement à un autre dans un formulaire ca devient illisible. J'ai posé ma procédure evenementiel sur changement de mon premier champ. J'ai essayé avant mise à jour aussi mais le pb reste identique. Si ce n'est pas clair, j'ai donné un exemple ici :

    http://www.developpez.net/forums/d14...e/#post8044645

    Merci d'avance,

    Bonne journée

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Merci, l'exemple est un peu compliqué mas au fil de la discussion je suis tombé sur votre post ici : http://www.developpez.net/forums/d14...s/#post8084797

    Si je comprends bien l'idée : le principe est de reduire la liste déroulante ou le controle est effectuée à qqch de nom visible et de créer une zone de texte reprenant la valeur du champ, c'est bien ca ? Ca ne nécessite pas de code vba ni rien si ?

    J'essaye de voir si je me débrouille avec votre astuce la semaine prochaine. Merci en tout cas !

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Si je comprends bien l'idée : le principe est de réduire la liste déroulante ou le contrôle est effectuée à qqch de non visible et de créer une zone de texte reprenant la valeur du champ, c'est bien ca ?
    Oui

    Ca ne nécessite pas de code vba ni rien si ?
    Un minimum : pour actualiser le contenu des listes.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    J'ai essayé l'ajout d'un champ texte avec pour code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [code_classe_FK].[column](1)
    Mais le pb persiste . Si je ne lui spécifie pas la colonne, Access prend la colonne liée, soit le numéro auto et celui reste visible quelque soit le contrôle par contre (mais ce n'est pas cette information que je veux afficher ).

    Je me permets de vous joindre ma bd exemple au format 2000. Dans mon exemple, il s'agit du champ code_classe_FK que je souhaite afficher en toute circonstance malgré le contrôle appliqué.

    Je vous remercie pour votre aide

    Bonne soirée
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Je ne parviens pas à deviner ce que tu veux faire.

    Peux-tu expliquer ce que contiennent tes 3 tables.

    Quoi qu'il en soit, les références des billets que je t'ai données n'ont sans doute rien à voir : il ne s'agit pas d'un formulaire affiché en continu.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Mes trois tables ne contiennent rien de particulier, j'ai fait ce fichier exemple pour illustrer mon pb. Dans le formulaire t_tech, les deux champs importants sont code_sous_famille_FK et code_classe_FK qui sont deux ZL liées. La valeur indiquée dans code_sous_famille_FK conditionne la liste de valeur disponible dans code_classe_FK. J'ai ajouté un code VBA sur le champ code_sous_famille_FK afin d'actualiser code_classe_FK. Mon problème est que ce contrôle s'applique a tous les enregistrements et ne permet donc plus de visualiser facilement les valeurs renseignées dans code_classe_FK pour les autres enregistrements dès que la valeur indiquée pour code_sous_famille_FK diffère de la précédente.

    Ainsi j'ai voulu utiliser votre méthode en essayant l'ajout d'une zone de texte, champ Texte11, pour rendre visible tout le temps la valeur du champ code_classe_FK quelque soit le "contrôle en cours". Mais je n'y parviens pas, ce qui est invisible, reste également invisible dans la zone de texte.

    Suis-je un peu plus clair ?

    Merci pour votre aide

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Cite-moi quelques noms de famille en indiquant quelques classes qui vont avec. Sans parler de code.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Ok par exemple

    - Enregistrement 3 : Famille 2.a, classe 1 (non visible dans formulaire)
    - Enregistrement 6 : Famille 3.a, classe 2 (non visible dans formulaire)

    La famille 1.a contient les classes :1, 2
    1.b : 1,2
    2.a : 1
    3.a :1,2

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    sois concret svp. Ne me donne pas des exemples avec des 1.b et des 1,2.

    « Cimenterie » c'est quoi une famille ? Une classe ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Pourtant les exemples donnés sont concrets et j'ai du mal a comprendre en quoi savoir que le code famille 4.a correspond au libellé Cimenterie peut aider a la résolution du problème. Ceci-dit si vous souhaitez savoir la correspondance de mon exemple, tout est détaillé dans la table t_famille qui contient la description des familles. La table t_classe rassemble les différentes classes disponibles pour chaque famille.

    t_famille
    N°	Fam	Ss Fam Libelle
    1	1	1.a	UIOM
    2	1	1.b	UIDIS
    3	2	2.a	Fonderie
    4	2	2.b	Metallurgie
    8	3	3.a	Chaufferie fossile
    11	4	4.a	Cimenterie
    12	4	4.b	Chaux
    13 	4	4.c	Verre
    Mes familles sont de la forme "Chiffre.lettre" et mes classes sont de la forme "chiffre". Et c'est sous cette forme la qu'ils apparaissent dans mon formulaire exemple et sont enregistrées dans ma table t_tech associée.

    Ex : la famille de code 2.a (libellé Fonderie) à pour classe disponible, la classe 1 uniquement. La famille 4.a correspondant aux cimenteries n'a, dans mon fichier exemple, pas de classes définies dans la table t_classe.

    Mon pb est : si j'indique "Fonderie" (2.a en réalité) dans mon formulaire, access conserve le contrôle "Fonderie" pour l'ensemble des enregistrement précédents ce qui rend la lecture à psotériori impossible pour une famille UIOM par exemple de classe 2.

    Je ne peux pas faire plus clair

    PS : a vrai dire je peux etre encore plus précis. Mon fichier exemple n'a absolument aucun sens car aucune information n'est rempli dans mon formulaire et sert uniquement à illustrer un problème de contrôle appliqué a l'ensemble des enregistrement observé sur une autre base. Il faut imaginer par exemple des enregistrement de type :

    nom source : Lafarge - Usine Tartanpion
    code_sous_famille : Cimenterie (ou 4.a dans mon fichier)
    code_classe_FK : 2 (qui correspond à titre d'exemple a une cimenterie moderne en opposition a classe 1 qui désigne une vieille cimenterie°

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Désolé.

    Je passe la main.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Je ne peux pourtant pas en dire plus sur ma base exemple et pour le coup je ne comprends vraiment pas pourquoi cela est important au vu de mon problème de débutant.

    L'échec sur ma zone texte vient très probablement d'un mauvais code de ma part. Du coup si un autre oeil aguerri ayant suivi le fil de la conversation pouvait juste jetter un oeil au code indiqué sur ma zone texte de mon formulaire, je suis preneur

    Bonne soirée

  14. #14
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je refais une tentative.

    Tu as 8 familles et 3 classes





    Tu as 15 combinaisons possibles



    D’autre part une table à gérer à l’aide d’un formulaire



    Quand tu as choisi une famille, tu voudrais que le choix des classes soit limité à celles prévues pour cette famille-là.
    Est-ce correct ?

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Si la réponse est oui, alors :

    La propriété « Contenu » de cboClasse :




    L’événement après mise à jour de cboFamille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cboFamille_AfterUpdate()
       Me.cboClasse.RowSource = Me.cboClasse.RowSource
    End Sub
    L’événement à chaque lecture d’un enregistrement (Actualisation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
       Me.cboClasse.RowSource = Me.cboClasse.RowSource
    End Sub
    Fichiers attachés Fichiers attachés

  16. #16
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Je ne comprends toujours pas le besoin d'analyser mes tables Non je n'ai pas juste trois classe, la classe 2 de la famille 2.a n'est , par exemple, pas la même classe 2 que la famille 1.a mais c'est un détail hors sujet. Mon problème se situe uniquement au niveau de l'actualisation à chaque enregistrement.

    L’événement à chaque lecture d’un enregistrement (Actualisation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
       Me.cboClasse.RowSource = Me.cboClasse.RowSource
    End Sub

    Et vous venez d'y répondre dans toutes vos réponses. La communication est difficile entre un débutant et un expert sur un domaine info, encore plus par internet Un grand merci pour votre aide et votre persévérance a déchiffrer mon problème !

    Bonne journée à vous et encore merci.

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

Discussions similaires

  1. [AC-2007] Actualiser liste déroulante liée dans sous-formulaire
    Par Elno11 dans le forum IHM
    Réponses: 5
    Dernier message: 24/12/2012, 14h42
  2. [AC-2010] probleme liste deroulante liée dans un sous formulaire
    Par azur123 dans le forum IHM
    Réponses: 3
    Dernier message: 07/08/2012, 11h29
  3. Réponses: 8
    Dernier message: 03/08/2008, 14h59
  4. Réponses: 2
    Dernier message: 15/09/2006, 19h03
  5. Réponses: 4
    Dernier message: 17/03/2006, 14h39

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