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
    Rédacteur/Modérateur

    [Tutoriel] Comment classer les données dans des tables liées et construire un formulaire père/fils
    Bonjour,

    Dans ce tutoriel, je vous propose une marche à suivre pour les cas où l'on veut présenter sur un écran une série d'informations à deux niveaux, par exemple :
    - chaque facture avec la date, le destinataire, les conditions de paiement... au 1er étage et le détail des articles facturés juste en dessous ;
    - un produit fini et la liste des pièces détachées qui le composent ;
    - ou comme ce qui va nous servir de modèle dans ce tutoriel, un plat cuisiné et la liste des ingrédients nécessaires.

    Merci déjà pour vos commentaires.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  2. #2
    Responsable
    Office & Excel

    Salut Claude,

    Merci d'avoir enrichi notre collection de tutos de cet article fort pertinent sur la mise en place d'un sous-formulaire, avec les rappels théoriques relatifs aux clés primaires / clés externes qui sont des notions inhérentes à cette ergonomie qu'Access permet de mettre en ligne, faut-il le rappeler, sans aucune ligne de code.

    A quand le prochain?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre chevronné
    Félicitations pour la création de ce tutoriel !

  4. #4
    Membre régulier
    Merci Claude,
    Ce tutoriel peut notamment servir à expliquer aux accros de Excel, qu'il existe d'autres niveaux de classement de données. C'est surprenant comme les gens (surtout les patrons) sont ignorants sur ce sujet.
    Merci encore.
    @+ Mike

  5. #5
    Rédacteur/Modérateur

    Bonjour,

    Merci à vous pour les encouragements.

    Pour répondre à Michel, voici une adresse (Choisir entre Access et Excel).
    Elle m’a été renseignée par un ami.

    Bonne journée.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Rédacteur/Modérateur


    J'aime bien les pictos !!!

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2013 et 2016 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  7. #7
    Membre à l'essai
    Petite question
    Bonjour,

    Je me réfère souvent à votre tutoriel! Je l'adore et il est très pratique.

    Cependant, j'aurais une petite questions; Que faudrait-il que je fasse, si je voulais avoir plus d'une fois du même ingrédient pour la même recette?

    Disons par exemple que pour une recette j'ai besoin de 30g de sucre pour une chose et 100g pour une autre étape... Et je ne veux pas les indiquer en une ligne.


    Merci à vous,
    LovelyRory

  8. #8
    Rédacteur/Modérateur

    Bonjour lovelyrory,

    Merci pour l'intérêt.


    À l’heure actuelle, ce qui garantit l’unicité d’un ingrédient, c’est la clé de la table tblPlatsIngredients





    Supprime cette clé :







    Et tu pourras encoder plusieurs fois le même ingrédient dans une recette

    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre régulier
    Bonjour,

    Merci encore pour ce tutoriel que j'ouvre quasiment à chaque fois que j'ouvre Access. Ça finit par rentrer.
    Cependant j'ai une question en cas de clé primaire multiple.
    J'ai mis la clé primaire (double) de ma Table source du Formulaire en tant que champs pères et fils du sous formulaire.

    J'ai mis les contrôles correspondant dans mon sous-formulaire afin de vérifier que ça fonctionne bien et ce n'est pas le cas.
    Lorsque je suis sur mon formulaire principal (en mode formulaire), les valeurs des champs pères n'apparaissent pas dans les Contrôles du sous formulaire.

    Y a-t-il quelque chose de spécifique à activer ou désactiver dans le cas des clés multiple?
    Merci d'avance pour la réponse.

  10. #10
    Rédacteur/Modérateur

    Bonjour,

    J'ai mis la clé primaire (double)
    De quoi s'agit-il ? Un clé primaire ne sait pas être double !

    Montre les relations entre tes tables.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Membre régulier
    Alors je parlais en fait de clé primaire composite.
    Mais en continuant à creuser, je me suis rendu compte que je me compliquais la vie et je m'en suis sortie... Enfin presque.
    J'ai une histoire de doublons qui m’enquiquine, mais la partie père/fils fonctionne maintenant.

    Ce que je me demande c'est pourquoi c'est toujours après qu'on a posé la question qu'on trouve la solution?

  12. #12
    Rédacteur/Modérateur

    La méthode du canard en plastique
    Si vous expliquez le problème à quelqu'un d'autre, vous trouverez parfois la réponse avant d'avoir fini de poser la question. Souvent, vous n'avez pas besoin d'une autre personne ; vous pourriez parler à un canard de baignoire en plastique.
    https://fr.wikipedia.org/wiki/M%C3%A...d_en_plastique

    source : Pensez en Python Allen Downey http://allen-downey.developpez.com/l...donnees#L13-10


    Bonne continuation.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  13. #13
    Membre régulier
    Excellent et vérifié tellement de fois... mais un canard en plastique sur mon bureau au boulot ça le ferait moyen
    Je parle toute seule mais ça marche moins bien.
    J'vais trouver un autre objet... ou un forum avec des gens sympas, patients et compétents.. Ah bah non j'ai déjà trouvé

    Merci encore pour cette écoute attentive

  14. #14
    Rédacteur/Modérateur

    À la prochaine,

    CoinCoin.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  15. #15
    Membre régulier
    ça m'énerve
    Je ne comprends pas, l'affichage formulaire/sous-formulaire qui fonctionnait bien la semaine dernière ne fonctionne plus aujourd'hui.
    Lorsque je mets une valeur dans mon champ père elle ne s'affiche plus dans mon champ fils...
    Comment c'est possible?
    Je n'ai rien changé (à part que j'ai commencé à mettre en place un petit code pour n'afficher le sous-formulaire que lorsque j'ai entré une donnée, mais même après avoir tout mis en commentaire sur ce code et remis la propriété du sous-formulaire sur visible par défaut ça ne fonctionne plus).

    Je ne comprends pas ce qui peut faire qu'un jour ça fonctionne et le lendemain non.
    La dernière fois, pour que ça tombe en marche j'avais simplement refait le sous formulaire en utilisant l'assistant...
    Y a un truc qui m'échappe.

    Edit: Je suis un boulet, je ne sais pas pourquoi, j'avais modifié ma table source en vérifiant mes relation j'ai compris mon erreur.
    Vive les canards ^^

  16. #16
    Membre régulier
    Bonjour c'est encore moi.
    Je ne voulais pas créer un post pour ce sujet. Si jamais il le faut, je le ferai sans problème.

    En fait j'ai un formulaire qui me sert à entrer de nouvelles références avec un sous-formulaire qui dépend du type d'optique (le source object du sous formulaire change à la mise à jour d'un contrôle).
    J'ai un problème de risque de doublon qui intervient sur mon sous-formulaire:


    J'ai l'impression que l'erreur vient du fait que mon formulaire et mon sous-formulaire ont la même table source. Mais je n'en suis pas sûre.
    Lorsque l'enregistrement s'enregistre (), il prend bien en compte les données du formulaire principal, mais pas celles du sous-formulaire.

    Je ne sais pas comment m'en sortir, si vous avez une idée...

  17. #17
    Rédacteur/Modérateur

    Bonjour,

    J'essaie de répondre avant que tu ne me dises que tu as trouvé !

    Le message que tu montres concerne la table source du sous-formulaire.
    Dans cette table, tu as des index dont la propriété "Unique" est à OUI. (La clé de la table en tout cas !)
    La modification que tu essaies d'encoder créerait un doublon dans la table : Access pas content et proteste => le message.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #18
    Membre régulier
    D'accord, je comprends l'erreur, mais je en sais pas comment m'en débarrasser.
    En fait la source de mon sous-formulaire est la même que le sous formulaire.
    Est-ce qu'il y a une astuce pour s'en affranchir?

    A un moment j'avais réussi en basant mon formulaire principal sur une requête qui ne contenait pas l'ID de ma table principale... Je viens de ressayer ça ne me pose effectivement plus de problème de doublon, mais ça me remplit les champs d'un autre enregistrement..

    En tout cas mon problème vient bien du fait que mon sous-formulaire a la même source que le formulaire.

  19. #19
    Membre régulier
    Bon mystère et boule de gomme, juste en mettant le champ père et le champ fils, ça marche... En fait ça marche même sans le faire apparaître dans le sous-formulaire.
    Reste plus qu'à le rendre invisible...

    En fait je crois que je comprends l'idée, en le faisant apparaître dans le champ père, je le fixe, alors que s'il n'y est pas...
    Merci de l'aide à la refléxion ^^

  20. #20
    Rédacteur/Modérateur


    Coin coin !
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !