[Résolu]Sous Formulaire : 2 champs liés et contrôle de table

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Avatar de l’utilisateur
Anestel
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 10 oct. 2020 18:57
Localisation : Morbihan

[Résolu]Sous Formulaire : 2 champs liés et contrôle de table

Message par Anestel »

Coucou c'est encore moi :)

Je reviens vers vous parce que je suis confrontée à un petit souci, encore...
C'est toujours ma base de donnée pour des achats groupés de produits pour les agriculteurs.

Au départ Papou l'a fait sur Calc.
Ses fournisseurs sont habitués à ce qu'il leur envoie en demande de devis, et en commande définitive, un tableau calc, avec en ligne le nom des produits demandés, en colonne le nom des agriculteurs et dans le tableau les quantités demandées.
Il a attribué des couleurs à ses agriculteurs, selon le lieu de livraison des produits.
Comme ça les fournisseurs savent qu'ils vont envoyer sur un lieu de livraison tous les produits demandés par les bleus, sur un autre livraison tous les produits demandés par les verts. Ça leur permet de faire leur prix en fonction de la distance parcourue et des quantités demandées.
Il envoie ce genre de tableau:
Capture.JPG
Hors sujet: problème, j'explique quand même pour une meilleure compréhension de ce qui va suivre parce que c'est lié
Il tient absolument à ce que la demande de devis et la commande définitive soient envoyées sous forme de tableau, en ligne les produits, en colonne les noms des agris et dans le tableau les quantités, ET avec des couleurs pour les agriculteurs. C'est impossible à faire avec Base, puisque si j'ai bien compris, Base ne peut pas faire de tableaux croisés dynamiques (parce que dans le SQL intégré l'instruction PIVOT n'existe pas, c'est ça? ).

Donc impossible de faire un rapport répondant à sa demande pour l'envoyer aux fournisseurs, le seul moyen que j'ai trouvé c'est de lui faire copier la table "T_Detail commande" sur Calc, lui faire faire un tableau croisé, ça c'est facile sur Calc il va y arriver, et ensuite de colorier ses colonnes d'agriculteurs, ce sera facile aussi car normalement ils devraient être groupés par couleur quand la table T_Detail Commande sera copiée sur Calc. Comme ça il pourra envoyer sa demande de devis puis sa commande définitive sous forme de tableau sans perturber ses habitudes ni celles de ses fournisseurs.
Fin du Hors sujet

Donc, comme je suis obligée de composer avec des couleurs, dans ma table T_Agriculteurs, il y a un champs IDCouleur , dans les relations il y a une table "Couleurs" avec comme champs IDCouleur (clé), puis Couleur (texte), liée à ma table T_Agriculteurs par ce champs IDCouleur.
Jusque là tout va bien.

C'est dans le formulaire "F_Commande agriculteurs" qui me sert à remplir les tables "T_Commande agriculteurs" et "T_Detail demande agriculteurs" que ça coince:
Lorsque je rentre les noms des agriculteurs dans le sous formulaire "commande agriculteurs", il y a donc une zone de liste à IDNom me permettant de choisir l'agriculteur par son nom et pas par son ID. Dans ma requête SQL pour cette zone de liste, j'ai mis "Nom", IDCouleur" et IDNom. En me disant que puisqu'on parle de champs liés, peut-être en mettant 2 au lieu de 1 dansles propriétés de la zone de liste, ce qui signifierait (dans ma logique) que les 2 premiers champs sont liés, le programme saurait que quand je rentre le nom d'un agriculteur, il faut qu'il retienne son ID et l'ICouleur, ...ce qui semble ne pas être le cas, puisque ensuite quand je passe au sous sous formulaire "Détail commande Agriculteur", l'IDCouleur ne se met pas toute seule dans le champs prévu alors que l'ID nom se met bien. Je l'ai eu fait sous Access, mais là, ça ne veut pas.
Et j'ai besoin d'avoir cette fichue couleur pour pouvoir ensuite classer les demandes par couleur d'agriculteur...

Auriez vous une idée de comment faire pour que ce champs IDCouleur dans mon sous-sous formulaire Détail commande Agriculteur se mette tout seul?

Parce que moi je cale.... :(
Je ne sais même pas si mon titre de sujet est adapté à ma demande... Mais j'ai pas trouvé d'autre formulation...
Voilà ma base test
Test.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Anestel le 14 nov. 2020 01:44, modifié 1 fois.
open office 4.1.7
Windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Sous Formulaire: Lier 2 champs dans un contrôle de table

Message par jeanmimi »

Bonsoir,
Anestel a écrit :Donc impossible de faire un rapport
Je ne comprends pas pourquoi, puisqu'un rapport peut aussi bien être un document Texte qu'une Feuille de Tableur.
D'autre part, il est possible d'importer dans Calc des donnée venant de Base.
Anestel a écrit :Il a attribué des couleurs à ses agriculteurs, selon le lieu de livraison des produits.
Donc, il est inutile de retrouver cette info dans les formulaires, il faudra seulement la faire apparaître dans la requête des devis.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmimi le 08 nov. 2020 09:59, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Anestel
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 10 oct. 2020 18:57
Localisation : Morbihan

Re: Sous Formulaire: Lier 2 champs dans un contrôle de table

Message par Anestel »

Bonsoir Jeanmimi, tu me sauves ! :bravo:
Merci merci merci !!!
jeanmimi a écrit :Bonsoir,
Anestel a écrit :Donc impossible de faire un rapport
Je ne comprends pas pourquoi, puisqu'un rapport peut aussi bien être un document Texte qu'une Feuille de Tableur.
Je n'avais même pas envisagé cette possibilité !!! Mais quelle andouille, ah j'vous jure !!! :lol:
En fait je disais qu'il était impossible de faire un rapport, (je lui en ai fait un mais la présentation l'a complètement déboussolé, c'était compréhensible mais beaucoup moins qu'un tableau).... parce que au départ je pensais tout lui faire faire dans Base pour ne pas lui compliquer le boulot. Mais Base ne permettant pas de faire des tableaux croisés (en restant dans Base), c'est pour ça que je disais "impossible de faire un rapport", sous entendu "dans base, de la façon qu'il voudrait qu'il soit présenté puisque je ne pouvais pas, dans Base, avoir en ligne les produits et en colonne le nom des agriculteurs"

Donc avec tes solutions que j'ai testées, merci encore, heureusement que tu es là :D
1-Rapport en sortie Classeur
Ça va permettre de copier le rapport sur une feuille vide calc, puis faire un tableau croisé dans pour avoir cette présentation spécifique que Papou veut envoyer... pour la couleur, il la mettra lui même sur ses colonnes d'agriculteurs.
2-Requête en relation avec Base sur Calc
C'est pareil , peut-être même plus simple pour lui, à lui de me dire quelle solution il va préférer, puisque le résultat sera le même sur Calc


Alors j'ai encore une question.. je suis désolée de vous embêter comme ça... !
Capture5.JPG
Une fois que mon tableau croisé est fait sur Calc, j'arrive à supprimer la ligne 17, mais comment faire pour remplacer la cellule C18 juste par une cellule sans flèche ou j'inscrirai "PRODUITS", il ne me laisse pas la changer.... Quand je coupe cette cellule et que j'écris "produits", il me met une fenêtre avec marqué "nom incorrect"...???

Edit en plus...2h plus tard...
J'ai quand même trouvé une solution pour avoir ce que je demandais au départ, en continuant à travailler, donc si ça peut en aider d'autres j'explique comment j'ai fait:

J'avais besoin que dans mon contrôle de table de formulaire, je puisse au départ avoir le nom de l'agriculteur ET sa couleur, j'en ai plus besoin maintenant mais ensuite j'ai eu besoin pour autre chose.
Sur ma table "produit", j'ai l'ID, le nom du produit et le conditionnement (1 litre, 5 litres, 20 litres par exemple)et j'avais besoin d'avoir sur le sous formulaire en contrôle de table le nom du produit et son conditionnement qui sont 2 champs de ma table "produits".

Alors quand on crée, dans un formulaire, un contrôle de table lié à un sous formulaire, normalement une fois dessiné il nous demande quels sont les champs qu'on veut mettre dedans. (des fois il le demande pas et fait un truc tout blanc, ça doit être un bug mais c'est pas grave). Il suffit d'ouvrir le biniou "rajouter un champ" et de déposer le champs dans les titres du contrôle, même s'il y est déjà il veut bien y aller une autre fois.
Ensuite on remplace par une zone de liste et on fait "SQL" dans les propriétés de la liste, et dans la requête qui s'ouvre on met le champs désiré et l'ID du champs, comme d'habitude.
Là, j'ai donc dans mon sous formulaire 2 champs IDProduit, que j'ai remplacés par des zones de listes et auxquels j'ai attribués les champs liés , pour le 1er "Nom du produit", et pour le second "conditionnement"
Et voilà j'ai tout ce qu'il me faut maintenant pour continuer :-)

Re edit quelques jours après, toujours pas de solution à la question que j'avais posée qui est "Une fois que mon tableau croisé est fait sur Calc, j'arrive à supprimer la ligne 17, mais comment faire pour remplacer la cellule C18 juste par une cellule sans flèche ou j'inscrirai "PRODUITS", il ne me laisse pas la changer.... Quand je coupe cette cellule et que j'écris "produits", il me met une fenêtre avec marqué "nom incorrect"...???", bon je sais c'est plus dans base... mais dans calc...
Mais j'ai esquivé, j'imprime en PDF et ça me vire les flèches qui me gênaient, c'est pour ça que je voulais remplacer la cellule 18.
Dnc je mets ce fil en résolu... Et j'en ouvre un autre pour un autre souci ....
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4.1.7
Windows 10