[Résolu]Formulaire : liste déroulante liée à un champ

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.
Répondre
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

[Résolu]Formulaire : liste déroulante liée à un champ

Message par coucou »

Bonjour,

J'ai un formulaire, dont le contenu est la table "ludothèque".
Dans ce formulaire, j'ai une liste déroulante qui devrait afficher les noms et prénoms des personnes. Ces personnes sont dans une table "Adhérents".

J'ai déjà fait ce genre de choses il y a plusieurs années, mais impossible de me souvenir comment.

Quelqu'un pourrait-il m'aider ?
Dernière modification par coucou le 28 mars 2018 13:29, modifié 1 fois.
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par Piaf »

Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Super, merci !

Je suis passé par une requête pour faire cette liste déroulante, mais dans la table "Adhérents", les noms et prénoms sont dans deux champs différents.
Comment faire pour que le nom et le prénoms des adhérents apparaissent dans la même liste déroulante ? (et tout d'abord, est-ce possible ?)
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Formulaire : liste déroulante liée à un champ

Message par jeanmimi »

Bonjour,
coucou a écrit :Comment faire pour que le nom et le prénoms des adhérents apparaissent dans la même liste déroulante ? (et tout d'abord, est-ce possible ?)
Il faut passer par une concaténation des champs :

Code : Tout sélectionner

"nom"||' '||"prénom"
Il y a de nombreux exemples dans le forum.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Merci pour votre réponse.

J'ai fait des recherches sur le forum, mais je ne comprends pas bien comment concaténer. J'imagine que dans Contrôle-> Données -> "type de contenu de liste"' il faut utiliser SQL et non pas Requête, mais ensuite, je suis un peu perdu...
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Formulaire : liste déroulante liée à un champ

Message par jeanmimi »

Une recherche sur SQL CONCAT permet d'avoir les différentes façons de concaténer.
Une est par exemple illustrée ici :
https://forum.openoffice.org/fr/forum/v ... AT#p280705
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Bonjour et merci pour votre réponse.

J'ai suivi l’exemple en question, et cela me renvoie l'erreur suivante :

Sélection_078.png
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par Piaf »

Bonsoir
coucou a écrit : J'ai suivi l’exemple en question, et cela me renvoie l'erreur suivante :
Tu n'as pas suivi l'exemple en question donc l'erreur est normale

Code : Tout sélectionner

SELECT(CONCAT(CONCAT("Nom","/"),"Prénom") FROM "Personnes"
n'est pas

Code : Tout sélectionner

SELECT(CONCAT(CONCAT("Nom",'/'),"Prénom") FROM "Personnes"
L'encadrement d'un terme par double cote fait référence à un champ, ce que t'indique le message d'erreur, il ne trouve pas la colonne /.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Merci pour cette précision !
Ah, ma vue n'est plus aussi bonne, avec l'âge...


Et est-il possible de faire en sorte que lorsqu'un élément de cette liste déroulante est sélectionné, je puisse voir dans le formulaire des autres données concernant cet élément ? (par exemple, l'élément nom+prénom m'affichera, dans un formulaire à coté, ses coordonnées complètes, coordonnées que je pourrais ensuite directement modifier sans aller dans la table en question).
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par Piaf »

Bonjour
Merci de fournir un fichier exposant ce que tu veux obtenir.
Tu devrais consulter [Base] Sélection d'enregistrement avec une liste déroulante
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Voici, en gros, ce que je souhaiterais. J'ai fait ça pour illustrer visuellement, mais cela ne fonctionne pas car je ne sais pas pour l'instant comment faire.

L'idée c'est :
- Une table "Inventaire.Jeux"
- une table "Adhérents"

Les adhérents peuvent emprunter des jeux.
Donc sur la "fiche" d'un jeu, on doit pouvoir saisir l'adhérent en le sélectionnant dans une liste déroulante. Une fois celui-ci sélectionné, il est enregistré dans le champ "emprunteur" de la table "Jeux" (bon, cela ne fonctionne pas encore tout à fait comme je voudrais, mais on verra cela plus tard).
De plus, quand l'adhérent est sélectionné dans la liste déroulante, il faudrait que ses informations personnelles (adresse, n° tél, etc) apparaissent sur la droite, en-dessous de la liste déroulante. Ses informations sont dans la table "Adhérents".
Et il faudrait que l'on puisse modifier ces informations directement depuis ce formulaire.
Pièces jointes
ludo.post.complet.odb
(134.97 Kio) Téléchargé 111 fois
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Formulaire : liste déroulante liée à un champ

Message par jeanmimi »

Bonjour,
coucou a écrit :(bon, cela ne fonctionne pas encore tout à fait comme je voudrais, mais on verra cela plus tard)
Même plus tard ça ne fonctionnera pas comme tu le souhaites.
Comme un jeu peut avoir plusieurs emprunteurs et qu'un emprunteur peut emprunter plusieurs jeux, il te faut une Table supplémentaire pour gérer les emprunts.
 Ajout : Ce qui pourrait donner cette version à tester :
ludo.post.complet_v2.odb
(142.9 Kio) Téléchargé 108 fois
Pour les images, il faut simplement mettre la Base dans le même répertoire, et dans la Base ne stocker que le nom de l'image. 
Dernière modification par jeanmimi le 22 mars 2018 15:38, modifié 3 fois.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Un jeu ne peut avoir qu'un seul emprunteur (nous n'aurons qu'un seul exemplaire de chaque jeu). Par contre, un Adhérent pourra emprunter plusieurs jeux, il est vrai.
Il faut quand même une table supplémentaire ?
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Formulaire : liste déroulante liée à un champ

Message par jeanmimi »

coucou a écrit :Un jeu ne peut avoir qu'un seul emprunteur
Au cours des mois et des années, ce jeu sera bien emprunté par plusieurs personnes. La Table Inventaire_jeux de ta base ne permet pas d'enregistrer ces différents emprunteurs.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Tout à fait, mais il n'est pas important que nous conservions l'historique des emprunts. Il faut surtout savoir quel jeu est dehors et chez qui.

Pour la base ludo.post.complet_v2.odb, malheureusement, cela ne fonctionne pas. Le bouton "afficher le jeu" ne produit aucun résultat. Et le formulaire ne permet pas de lier un adhérent à un jeu.
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Petite question: est-il indispensable de créer la table "Inventaire_jeux" pour faire ce que je souhaite ?

J'ai seulement besoin que les données concernant les adhérents s'affichent lorsque un adhérent est sélectionné dans la liste déroulante (afin de différencier deux "Jean Dupont", par exemple. Cas rare, mais bon, on ne sait jamais. Est également pour pouvoir modifier les coordonnées directement.)

J'ai crée un sous-formulaire avec un contrôle de table, mais je n'arrive pas à le lier à la sélection de la liste déroulante.
La modération vous a écrit: Merci de ne pas poster plusieurs messages à la suite, si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.
Image
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.

LibreOffice Version: 5.1.6.2
LinuxMint 18.3
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 344
Inscription : 29 mai 2009 10:51
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par HRk2o »

Bonjour,

peut être une présentation à partir de l'adhérent directement -> "Fm_adherent".
très simple, sans macros.
Dans les relations de tables il faut cocher la mise en cascade des liens et les sous-formulaires sont liés par le lien idoine.
@+
ludo.post.complet_v3.odb
(152.66 Kio) Téléchargé 102 fois
AOO 4.1.14 et LO 7.3.7.2 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.1.14 et LibO 7.3.7.2
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Bonjour,
merci pour votre réponse. Je vais essayer ça.
Le problème, c'est que la V2 et la V3 n'ont pas les mêmes noms de champs que ma V1. Du coup, je n'arrive pas à reproduire ce que vous faites, car il y a chaque fois des messages d'erreur, les noms des tables et des champs n'étant pas les mêmes. J'ai beau tenter de corriger tous ces noms un par un , il y a toujours un truc qui ne colle pas, et les messages d'erreur n'étant pas très détaillés (on ne sait pas de quels formulaire ou contrôle ils proviennent), je n'arrive jamais à corriger toutes les erreurs.

Par exemple, la première erreur est celle-ci:
Sélection_080.png
Et je ne sais pas de quel formulaire ou contre elle provient...
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 344
Inscription : 29 mai 2009 10:51
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par HRk2o »

Fournissez un exemplaire de la V1, on verra ce qui pose problème!

@+
AOO 4.1.14 et LO 7.3.7.2 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.1.14 et LibO 7.3.7.2
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Voici la V1 dans laquelle j'ai importé le "Fm_adherent" de la V3 en corrigeant, du mieux que j'ai pu, les noms de champs et de tables.

Si vous voyez pourquoi cela ne fonctionne pas, ce serait génial,parce que j'ai fait 10 fois le tour et je ne comprends pas. C'est peut-être tout bête et je ne suis pas assez expérimenté pour le voir...
Pièces jointes
ludo.post.complet.odb
(157.55 Kio) Téléchargé 78 fois
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 344
Inscription : 29 mai 2009 10:51
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par HRk2o »

Voilà!

il était plus facile de reconstruire les sous-formulaires

@+
ludo.post.complet.odb
(156.72 Kio) Téléchargé 118 fois
AOO 4.1.14 et LO 7.3.7.2 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.1.14 et LibO 7.3.7.2
coucou
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 08 sept. 2009 10:20

Re: Formulaire : liste déroulante liée à un champ

Message par coucou »

Un grand merci !

Personnellement, je n'ai jamais réussi à faire en sorte qu'un contrôle de table affiche quelque chose. Il y sûrement un truc à activer, mais chez moi il reste toujours grisé, je ne sais pas pourquoi...
Sélection_081.png
Sélection_081.png (3.92 Kio) Consulté 4561 fois

Et maintenant, le problème que j'ai , c'est que si je fais une requête pour savoir quels jeux sont prêtés, je n'obtient que les ID des jeux, puisque la table emprunts ne mentionne pas le nom des jeux. Comment faire pour avoir le nom des jeux empruntés ? Là, je ne vois plus, je commence à m'embrouiller la tête :D
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 344
Inscription : 29 mai 2009 10:51
Localisation : Guyane

Re: Formulaire : liste déroulante liée à un champ

Message par HRk2o »

Ce serait bon de soumettre le sujet à la section"Projet"; ce qui permet de pouvoir répondre à toutes les questions dans le mm fil.

réponse rapide:
- un champ booléen dans la table "emprunts", activé quand le jeu est emprunté et désactivé lorsqu'il est rendu;
- ou une date de retour
@+
AOO 4.1.14 et LO 7.3.7.2 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.1.14 et LibO 7.3.7.2
Répondre