[Résolu] remplir une table en fonction de la valeur des cases à cocher d'une autre 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.
lucieJDL
Fraîchement OOthentifié
Messages : 3
Inscription : 30 juin 2023 07:22

[Résolu] remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par lucieJDL »

Bonjour,

Je crée un formulaire pour gérer les dates de concerts de groupes de musique et l'affectation des artistes sur ces dates.
L'idée est que pour chaque nouvelle date enregistrée, je sélectionne le groupe de musique.
Ensuite, un tableau affiche les artistes qui appartiennent à ce groupe.
Seulement, tous les artistes ne jouent pas forcément sur la date. J'ai donc ajouté une case à cocher pour affecter ou non l'artiste à la date.
J'aimerai que lorsque je valide ma sélection, ma table d'affectation se remplisse avec l'identifiant des artistes et l'identifiant de l'événement.

Si je résume les étapes :
1- sélection du groupe de la table Tgroupe
2- affichage liste des salariés dans un tableau de la table Tsalarie
3- sélection des artistes
4- remplir en fonction la table affectation Taffectation

Pour l'instant, j'ai fait les 3 premières étapes mais je bloque sur le remplissage de la table affectation.

Le problème est que je ne suis pas sûre d'avoir choisi la bonne méthode.
J'ai essayé d'écrire une macro qui parcourrait la tableau pour récupérer l'identifiant du salarié mais ça dépasse mes compétences.
Peut-être faut-il une requête ?

Pourriez-vous m'aiguiller sur la méthode à suivre ?

Merci par avance
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par lucieJDL le 01 juil. 2023 09:11, modifié 2 fois.
LibreOffice 7.4.6.2 (x64) sous Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par Dude »

Salut,

On ne duplique jamais l'information dans un modèle relationnel.
Si on doit en arriver là, c'est que ce dernier est incorrect.
Et rien que le fait d'avoir déjà recours à des macros le démontre.

Il faut décrire chaque relation et les reporter ensuite dans le modèle.
Quelques exemples :
  • un groupe est composé de 1 à n artistes
  • un artiste peut faire partie de 0 à n groupes
  • un événement est composé de 1 à n groupes
Se reporter sur le tutoriel "Débuter à partir d'une application exemple commentée" pour les appliquer.

De ce que je vois dans ce que tu as fournis, c'est que les relations ne sont pas bonnes :
capture.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par nounours2 »

Bonjour lucieJDL,

Ce lien pourraît vous être utile: viewtopic.php?t=67456

A+

nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
lucieJDL
Fraîchement OOthentifié
Messages : 3
Inscription : 30 juin 2023 07:22

Re: remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par lucieJDL »

Merci pour vos réponses.
J'ai finalement réussi à trouver une macro qui me permet de remplir ma table d'affectation en fonction des cases cochées d'une autre table.
Je mets la version corrigée en pièce jointe.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.6.2 (x64) sous Windows 11
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu] remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par nounours2 »

Lucie a écrit:
Je mets la version corrigée en pièce jointe.
Lucie, je vous prie de m'excuser, mais je n'ai pas très bien compris.

Etait-ce vraiment indispensable de recourir à une macro? Il y a une couille dans votre code!

Je n'ai donc pas pû tester votre fichier.

Bien à vous

nounours2

P.S. Veuillez, je vous prie, revoir vos tables des relations (2ème option à gauche à activer)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
lucieJDL
Fraîchement OOthentifié
Messages : 3
Inscription : 30 juin 2023 07:22

Re: [Résolu] remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par lucieJDL »

Merci du retour,
Etait-ce vraiment indispensable de recourir à une macro? Il y a une couille dans votre code!
Il y avait sûrement d'autres solutions, peut-être plus élégantes, mais j'ai trouvé celle-là qui me convient pour ma part.
Suite à votre réponse, j'ai par ailleurs testé le fichier "evenement_corrige.odb" sur un autre ordinateur et il fonctionnait aussi.

Bonne journée
LibreOffice 7.4.6.2 (x64) sous Windows 11
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu] remplir une table en fonction de la valeur des cases à cocher d'une autre table

Message par nounours2 »

Oui, Lucie,

Je n'avais pas bien lu votre signature. Nos systèmes ne son paraît-il pas compatibles.

Veuillez donc excuser mon intrusion.

Bien à vous

nounours2 :shock:

P.S. J'ai testé votre fichier sur une version mise à jour (7.2.5.4.) mais il affiche toujours le même "bug".
Est-ce bien le bon fichier? Ou bien avez-vous recorrigé votre version sans la poster? Merci de votre réponse :marto:
Libre Office 6.0.7 sous Ubuntu 18.04