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 :

Formulaire avec plusieurs sous-formulaires hiérarchiques [AC-365]


Sujet :

IHM

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

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut Formulaire avec plusieurs sous-formulaires hiérarchiques
    Bonjour,

    Je désire créer un formulaire principal contenant plusieurs sous-formulaires qui sont en hiérarchie, je m'explique.

    1. Formulaire principal : Applications.
    2. Sous-formulaire : Acquisitions, 0 ou plusieurs, selon le formulaire Applications, on ne voie que les acquisitions relatives à l'application sélectionnée.
    3. Sous-formulaire : Clés, 0 ou plusieurs, selon le sous-formulaire Acquisitions, on ne voie que les clés relatives à l'acquisition sélectionnée.

    Est-ce possible et si oui comment, je sais que si je créé un formulaire Applications en mode Formulaire continu et que j'ajoute un ou des sous-formulaires c'est possible mais selon mes lectures tous ceux-ci doivent être en lien direct avec le formulaire principal alors que je désire que le tout soit hiérarchique.

    Exemple :
    Application sélectionnée: Norton 360
    Acquisitions de Norton 360: Achat 1 2024/06/01
    Achat 2 2025/06/02 sélectionnée
    Achat 3 2026/06/01
    Clés de Achat 2.

    Bien sûr il faut pouvoir créer, modifier ou supprimer chacun des éléments constituant l'affichage.

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut
    Bonjour,

    Voici un exemple de ce que j'aimerais : Nom : Capture d’écran 2026-06-09 043700.png
Affichages : 51
Taille : 38,1 Ko

  3. #3
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 603
    Par défaut
    Hello,

    vous n'auriez pas un "p'tit" fichier à nous proposer pour nous éviter de recréer votre base ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

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

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre réponse, il y a environ 15 minutes j'ai réussi à tout relier et il me reste des vérifications à effectuer mais pour l'instant ça semble fonctionner mais je vais savoir plus tard si c'est correct et sinon je me ferai un plaisir de vous fournir ce qu'il vous faut pour m'aider.

    Je vous redonne des nouvelles bientôt.

    Merci en attendant et même si tout est correct je pourrai vous fournir la solution que j'ai utilisé.

  5. #5
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 720
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    On va supposer que le champ identifiant un enregistrement dans la table Acquisitions se nomme "Id_Acquisition" et que les sous-formulaires se nomme "SF_Acquisitions" et "SF_Cles" .

    Il faut d'abord ajouter une zone de texte txt_Acqusisition sur le formulaire principal.

    Ensuite régler la propriété Source contrôle de cette zone de texte comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SF_Acquisitions.form!Id_Acquisition
    Elle contiendra l'identifiant de l'enregistrement actif dans le sous-formulaire SF_Acquisitions.

    Puis, mettre sur les propriétés champs de liaison du sous-formulaire SF_Cles :

    champs père : [txt_Acqusisition]
    champs fils : [Acquisition]

    Et enfin, pour forcer la synchronisation des deux sous-formulaires mettre en plus ce code sur l'événement current (activation) du sous-formulaire SF_Acquisitions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
        Me.Parent.SF_Cles.requery
    End Sub
    Il faudrait le tester...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Membre éclairé
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut
    Bonjour,

    Avez-vous un truc pour que je puisse vous envoyer un fichier test.accdb car je ne trouve pas le moyen de le faire.

    Votre solution ressemble à ce que j'ai utilisé.

    Merci.
    Images attachées Images attachées   

  7. #7
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 720
    Billets dans le blog
    67
    Par défaut
    Apparemment le champ identifiant un enregistrement dans la table Acq se nomme "Ref".

    Il faut donc d'abord ajouter la zone de texte txt_Acquisition sur le formulaire principal.

    Ensuite régler la propriété Source contrôle de cette zone de texte comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SF_Acquisitions.form!Ref
    Elle contiendra l'identifiant de l'enregistrement actif dans le sous-formulaire SF_Acquisitions.

    Puis, bien mettre sur les propriétés champs de liaison du sous-formulaire SF_Cles :

    champs père : [txt_Acquisition]
    champs fils : [AcqRef]

    La clé étrangère AcqRef dans la table semble reliée à la clé primaire Ref de la table Acq.

    Ceci, pour synchroniser les deux sous-formulaires..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre éclairé
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut
    Bonjour,

    Merci à vous pour vos réponses, voici ce que j'ai fait pour que ça fonctionne, c'est dans le même sens que les réponses que j'ai reçues.

    1. La source des sous-formulaires secondaires est une requête de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Acq.*, Apl.Apl
    FROM Apl INNER JOIN Acq ON Apl.Ref = Acq.AplRef
    WHERE (((Acq.AplRef)=[Formulaires]![frmApl]![txtRefApl]))
    ORDER BY Apl.Apl;
    2. Dans le formulaire principal j'ai ajouté un contrôle indépendant non visible txtRefApl

    3. Dans l'événement "Sur activation (Current)" des sous-formulaires :
    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
    17
    Private Sub Form_Current()
     
        If Not Me.NewRecord Then
            Me.parent!txtRefAcq = Nz(Me!Ref, 0)
        Else
            Me.parent!txtRefAcq = 0
        End If
     
        ' Recharge le sous-formulaire des clés
        Dim ctl As Control
        On Error Resume Next
        Set ctl = Me.parent.Controls("SFM_Cle")
        If Not ctl Is Nothing Then
            ctl.Form.Requery
        End If
     
    End Sub
    Maintenant ça fonctionne, merci à tous et je place la discussion comme résolue.

  9. #9
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 720
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Je vous ai fait l'exemple :

    Il faut ouvrir F_Apl et F_Apl2_bis.

    Cdlt
    Fichiers attachés Fichiers attachés
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  10. #10
    Membre éclairé
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 296
    Par défaut
    Bonjour,

    Je vais regarder attentivement.

    Merci et bonne journée

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

Discussions similaires

  1. QuickReport Maître/Detail avec plusieurs sous details
    Par ouedro dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/10/2015, 08h04
  2. [WS 2008] serveur DHCP avec plusieurs sous résseaux
    Par boboss123 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 07/12/2009, 13h53
  3. Réponses: 2
    Dernier message: 27/10/2009, 21h13
  4. Réponses: 4
    Dernier message: 17/11/2008, 22h04
  5. Forum avec plusieurs sous catégories
    Par VFone dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2007, 17h41

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