Aller au contenu
  • 0
cdestrib

Union de deux tables

Question

Bonjour,

Soit 3 tables

"Presta" stockant des données relatives à des traiteurs

"Lieux" stockant les données relatives à des lieux de réceptions

"Opé" stockant les intervenants pour un événement donné 

"Presta" et "Lieux" ont, en autres, 3 rubriques : "UUID", "Nom" et "Type"

J'ai besoin de présenter, dans "Opé" une liste combinée des UUIDs, noms et lieux de "Presta" et "Lieux".

Pour cela je vois 3 solutions :

1. Fusionner les tables "Presta" et "Lieux" en une seule. Ce n'est pas très élégant, sachant que la majorité des autres rubriques de ces tables n'ont rien en commun.

2. Créer d'une nouvelle table ayant pour seul fonction de rassembler les valeurs des rubriques "UUID", "Nom" et "Type" afin de pouvoir les présenter dans une liste déroulante. Cela nécessite alors de maintenir la table à jour par un script qui serait déclenché dès qu'une nouvelle fiche serait créée soit dans "Presta", soit dans "Lieux".

3. Faire une requête SQL "UNION ALL" qui permet la création d'une liste dynamique des valeurs séparées par des retours chariots.

ExecuteSQL ( 
"SELECT UUID, Nom, Type FROM Presta
UNION ALL
SELECT UUID, Nom, Type FROM Lieux" ;
"";
""
)

Le résultat de la requête est stockée dans une variable ou une rubrique. Mais je ne vois pas comment tirer partie de cette liste : si je l'associe à une liste déroulante, par exemple, les éléments de la liste apparaissent bien à l'écran sous forme d'une entrée unique ayant de nombreuses lignes cliquer sur une ligne revient à sélectionner l'élément entier, ce qui n'est pas intéressant.

Voici ma question (enfin 😉) : est-il possible d'identifier dans quelle ligne de la liste l'utilisateur a cliqué afin d'en extraire l'UUID et le reste ? Ou bien est-il possible de ventiler le contenu de cette élément multi-lignes dans une liste ayant autant de valeurs que de lignes ?

Ou encore, y a-t-il une meilleure solution à cette problématique ?

Merci d'avance pour votre aide.

Cyrille

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

5 réponses à cette question

Messages recommandés

  • 0

Fabrice,

Merci pour ta suggestion. J'avais déjà parcouru ton témoignage sur ce projet mais j'ai pris le temps de le relire très attentivement.

Si je comprends, je prends le résultat de ma requête SQL (composée de lignes séparées par des ¶), j'en fais un fichier que j'appelle ultérieurement dans une Value List en choisissant l'option "Use values from another file" ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Euh... non, je me trompe. J'ai regardé le fichier joint à ton blog mais je suis loin de tout comprendre.

Dois réétudier la chose...

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Non, c’est moi qui ai mal compris : je pensais que tu voulais afficher une vue liste, pas une liste de valeurs.

Pour une liste de valeur, tu peux utiliser la technique Magic Value List (rechercher sur FileMaker Hacks), mais cela ne fonctionnera qu’avec un champ. Pour récupérer l’ID, il faudra utiliser un jeu de référence externes après la saisie.

FileMaker ne peut pas résoudre la jointure vers de multiples tables.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Fabrice, merci beaucoup pour la référence à Magic Value List.

bon week-end ensoleillé 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×