[Résolu] Remplir une cellule avec une Zone de liste

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
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

[Résolu] Remplir une cellule avec une Zone de liste

Message par anatole »

Bonjour,
J'ai crée une base pour des recherches historiques il y a quelque temps avec l'aide du forum : Merci.
J'ai une table "Fonds" et une table "Editeurs" liées par une clé Edi_ID.
Dans un formulaire, quand je crée un enregistrement de la table "Oeuvres", sur le champ "Edi_ID”, j’ai mis une “zone de liste” via requête sql

Code : Tout sélectionner

SELECT "EDI_LABEL_1", "EDI_ID" FROM "T_EDITEURS" 
: ça fonctionne très bien MAIS avec cette solution : s'il s'agit d'un nouvel éditeur jamais utilisé, je dois préalablement en créer l'enregistrement dans la table "Editeurs" !
Ce que je voudrais à la place = toujours une liste déroulante sur le champ “Edi_ID" mais quand je crée un nouvel enregistrement "Fonds", avoir le choix :
- soit utiliser une valeur de la liste déroulante = éditeur déjà existant dans la table "Editeurs"
- soit directement entrer le nom d'un nouvel éditeur qui est en même temps créé dans la table "Editeurs"

J'espère que ma question est claire. Merci de vos lumières.
Bonne fin de vikend.
Dernière modification par anatole le 10 nov. 2023 12:07, modifié 2 fois.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Remplir une cellule avec une Zone de liste

Message par Bidouille »

Bonjour,

Et depuis 2010, on va vous répeter encore les règles : mettre en ligne votre base en joignant un fichier ODB.

Merci de fournir quelque chose d'exhaustif et limité à la seule problématique.
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: Remplir une cellule avec une Zone de liste

Message par anatole »

Bonsoir Bidouille,
Merci de me rappeler mon ancienneté sur ce forum ... :D Bon pour Base ça ne fait que deux ou trois ans ...
Je joins une version simplifiée de ma Bdd : avec la table "Fonds"
Je n'ai laissé qu'un seul formulaire : celui où il y a le champ "Editeur" sur lequel je travaille; à l'ouverture de ce formulaire en raison de la simplification effectuée, il y a 4/5 messages préalables "Données impossibles à charger" mais ça ne l'empêche pas au final de s'ouvrir.

J'espère que cela éclaire mon objectif : quand je crée un nouvel enregistrement "Fonds", avoir le choix :
- soit utiliser une valeur de la liste déroulante = éditeur déjà existant dans la table "Editeurs"
- soit directement entrer le nom d'un nouvel éditeur qui en même temps sera créé dans la table "Editeurs"

Merci et bonne semaine.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par anatole le 09 nov. 2023 10:28, modifié 1 fois.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: Remplir une cellule avec une Zone de liste

Message par rollmops »

Bonjour,

La base jointe n'est pas exploitable en l'état. Quand j'ouvre le formulaire, j'ai plein d'erreurs de table inexistante.
Je n'ai pas compris comment on pouvait remplir une zone de liste puisque par défaut, c'est impossible.
La saisie est uniquement possible avec un controle Boite combiné (Combobox)

Serait-il possible de nous mettre une image du résultat à obtenir ?

Je ne vois rien d'automatique avec Base et il faudra sûrement recourir à des macros.
OpenOffice 4.1.15 - 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: Remplir une cellule avec une Zone de liste

Message par jeanmimi »

Bonjour,
rollmops a écrit : 06 nov. 2023 09:07 remplir une zone de liste puisque par défaut, c'est impossible
Pour contourner cette limite, tu peux créer un nouveau formulaire avec un champ Zone de texte où tu saisiras le nom de l'éditeur inexistant dans la Table T_EDITEURS.
Editeurs champ texte.png
Pour que cette saisie libre n'écrase pas des données éditeurs déjà existantes, il faut paramétrer la contrainte d'ajout de données et de refus des modifications. Le champ ID de la Table T_EDITEURS étant en Autovaleur, un nouvel ID sera créé automatiquement à la perte de focus dans ce champ Zone de texte.
Editeurs Propriétés du sous-formulaire.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: Remplir une cellule avec une Zone de liste

Message par anatole »

Merci Rollmops pour cette réponse. Effectivement, comme j'ai simplifié ma Bdd (je n'oserai jamais montrer dans son intégralité l'usine à gaz que j'ai bricolée :fou: ), il y a 4/5 messages mais qui n'empêchent pas son ouverture finale. Je mets un schéma illustrant mon objectif.
liste 23 11 06.png

Merci Jeanmimi. Je regarde attentivement ta réponse qui a bien l'air de m'apporter une solution assez proche de ce que je cherche.

Bonne semaine.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: Remplir une cellule avec une Zone de liste

Message par anatole »

Bonsoir,
Jeanmimi merci :super:
J'ai mis en œuvre ta solution ; ça marche ; dans le cas d'un Editeur qui n'est pas dans la liste, après l'avoir rentré, je dois seulement rafraîchir le formulaire "Fonds" pour que le nouvel éditeur que je viens de rentrer figure dans la liste et que je puisse l'associer au Fonds.
Cette amélioration m'a fait découvrir que je devais transformer le champ "EDI_LABEL_1" en saisie unique ce que j'ai fait par une instruction SQL :D
Je mets le travail que j'ai fait :P pour validation !
Je vais mettre résolu et ouvrir un nouveau sujet sur l’utilisation d'une requête pour rechercher les enregistrements contenant un mot dans un champ et l'affichage des enregistrements trouvés dans un formulaire déjà existant ...

Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
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: Remplir une cellule avec une Zone de liste

Message par jeanmimi »

anatole a écrit : 08 nov. 2023 17:42 pour validation
Je n'ai pas compris pourquoi tu as choisi Ouvrir une page web pour l'action du bouton Fonds.
anatole a écrit : 08 nov. 2023 17:42 utilisation d'une requête pour rechercher les enregistrements contenant un mot dans un champ
C'est une question déjà traitée dans le forum et dans la FAQ.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: Remplir une cellule avec une Zone de liste

Message par anatole »

Bonsoir Jeanmimi.
" l'action du bouton Fonds" : j'ai appliqué - mal ? - la solution trouvée ici je crois, pour créer des onglets : le bouton me permet depuis l'onglet "Recherches", de revenir au premier onglet de couleur verte "Fonds" :shock:
"question déjà traitée dans le forum et dans la FAQ" : aurais-tu des liens vers les pages où ça se trouve ?

Merci.
Bonne soirée.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !