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

  1. #1
    Membre du Club
    Simulation de sous-formulaires double affichage : le retour
    Bonjour,

    Je me permets de revenir sur un problème partiellement résolu, à savoir la simulation du formulaire double affichage au moyen de deux sous-formulaires non liés mais utilisant la MEME table
    je rappelle ici le fonctionnement (impeccable)
    sous-formulaire "père" : "sFormPère1" au format feuille de données
    sous-formulaire "fils" : sFormFils1" au format formulaire "classique" de visualisation/édition
    les deux sous formulaires se relient par le champ clé de la table (texte court au format "L00-000" : "Theme_ID") de la manière suivante :
    sFormFils1 : champ père = [sFormPère1]![[Theme_ID]
    sFormFils1 : champ fils = [Theme_ID]
    sFormPère1 : propriété "sur activation", code VB
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    On Error Resume Next
    Me.Parent.[sFormFils1].requery


    Dans l'application actuelle, je dois ajouter sur le même formulaire principal, deux nouveaux sous-formulaires non liés du même type que les premiers que j'appellerai :
    sous-formulaire "père 2" : "sFormPère2" au format feuille de données
    sous_formulaire "fils 2" : "sFormFils2" au format "classique" de visualisation/édition
    les deux sous-formulaires 2 se relient par le champ clé d'une seconde table, à savoir ici un numéro automatique (numéro automatique : "Rio_IN_ID") de la manière suivante :
    sFormFils2 : champ père = [sFormPère2]![[Rio_IN_ID]
    sFormFils2 : champ fils = [Rio_IN_ID]
    sFormPère1 : propriété "sur activation", code VB
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    On Error Resume Next
    Me.Parent.[sFormFils2].requery

    Le sous-formulaire "sFormPère2" est relié au sous-formulaire "sFormPère1" par un filtre, à savoir : [Rio_IN_theme] = [sfrmPère1]![Thème_ID]

    Pas de problème pour le lien filtré entre les sous-formulaires "Père" 1 et 2, il affiche bien tous les éléments disponibles pour chaque thème dans la feuille de données 2,
    MAIS, pas moyen d'obtenir le lien entre le "Père 2" et le "Fils 2". Ce sous-formulaire ne montre jamais que la première fiche de la table 2 et n'évolue ni en fonction d'un changement dans la partie thème, ni dans un des sous-thèmes apparaissant dans le sous-formulaire feuille de données "Père 2".

    NB:
    1- aucune relation n'a été pré-établie dans le générateur de relations de la base de données relativement aux tables Thème et Sous-thèmes
    2- les 4 sous-formulaires font partie du même formulaire principal

    Je ne comprends pas comment faire pour que les sous-formulaires 3 et 4 se relient automatiquement à chaque changement soit dans la zone thème (sous-formulaires 1), soit dans la zone sous-thème (sous-formulaires 2).
    Ceci est d'autant plus problématique que je devrai sous peu ajouter un troisième et dernier groupe de 2 sous-formulaires en lien avec les 2 zones précédentes.

    Bref : help please.

    Guy.

  2. #2
    Membre éprouvé
    Bonjour,

    Bizarre, la technique décrite devrait fonctionner, tu n'a pas oublié un requery qq part?
    sinon poste ta base

  3. #3
    Expert éminent
    Bonjour,

    Moi, je fais cela sans code mais en utilisant une zone de texte pour récupérer la valeur sélectionné dans le sous formulaire en tabulaire et les propriétés pères/fils des formulaires.
    On part du principe que les 2 tables sont crées correctement :
    - Theme (IdTheme, NomTheme) IdTheme comme clé primaire.
    - SousTheme (IdsousTheme, NomSoustheme,IdTheme_FK), IdsousTheme comme clé primaire et table liée à Theme par IdTheme_FK (la Liaison n'est pas obligatoire mais permet d'éviter les problèmes)

    On crée 2 formulaires pour chaque table (1 simple affichage et 1 autre en mode tabulaire) qu'on nommera : SF_themeFiche - SF_themetableau - SF_sousthemeFiche - SF_sousthemetableau qui deviendront les sous-formulaire du formulaire principal.
    On met les 4 sous-formulaires sur le formulaire principal.
    1- On fait fonctionner la liaison entre SF_themeFiche - SF_themetableau
    On crée une première zone de texte qu'on nommera (zdtThemeSelectionne) qui va récupérer la valeur sélectionnée dans le Sousformulaire1 (Sf_themetableau). Elle aura comme source
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =[SF_theme_tableau].[Formulaire]![IdTheme]

    On définit les propriétés Pères/Fils du sous-formulaire SF_themeFiche
    Champs Pères : zdtThemeSelectionne
    Champs Fils : IdTheme

    2- On synchronise le sous-formulaire SF_sousthemetableau avec le thème sélectionné dans zdtThemeSelectionne
    On définit les propriétés Pères/Fils du sous-formulaire SF_sousthemetableau
    Champs Pères : zdtThemeSelectionne
    Champs Fils : IdTheme_FK

    3- On fait fonctionner la liaison entre SF_sousthemeFiche - SF_sousthemetableau
    On crée une première zone de texte qu'on nommera (zdtSousThemeSelectionne) qui va récupérer la valeur sélectionnée dans le Sousformulaire3 (SF_sousthemetableau ). Elle aura comme source
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ==[SF_SousthemeTableau].[Formulaire]![IdSousTheme]

    On définit les propriétés Pères/Fils du sous-formulaire SF_sousthemeFiche
    Champs Pères : zdtSousThemeSelectionne
    Champs Fils : IdSousTheme

    Et on peut continuer selon la logique métier.
    En pièce jointe, l'exemple.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  4. #4
    Membre du Club
    Simulation du formulaire double affichage
    Bonjour MadeFemere,

    Un seul Waow : propre, clair, net, limpide et efficace : mieux que l'oeuf de Colomb
    Je vais appliquer asap cette solution et intégrer avec un mois d'avance le troisième groupe de formulaires dans le projet (il s'agit ici d'une gestion de courrier IN/OUT).

    Que voici des heures et des kilos (lol) d'aspirines évités.

    Merci 1.000 x

    Keep safe

    Guy
    Bruxelles.

  5. #5
    Membre du Club
    Simulation du formulaire double affichage
    Bonjour AccessIsGood,

    Merci pour ton intervention.
    J'ai checké une nouvelle fois mon projet et malheureusement aucun requery n'était manquant. Bizarre. Correct en théorie mais couac à l'utilisation. Les mystères de l'informatique.

    Je viens de suivre la démonstration de l'ami MadeFemere. Elle est efficace et superbe dans sa simplicité. L'idée de génie étant ici le chargement d'un champ prenant en compte le résultat de la sélection dans le formulaire multiple (ou table de données).
    C'est à un point que je me croyais quasiment dans mon application.

    Encore merci.
    Pour l'intérêt de la chose j'essayerai dès la fin de la création de cette application de comprendre le pourquoi du non-fonctionnement des "requery" entre les sous-formulaires 3 et 4.

    Bonne journée et encore merci.

    Guy
    Bruxelles

###raw>template_hook.ano_emploi###