i

Formulaire sur des tables multiples


J'essaye de créer une base de données de partants PMU, en vue de mettre au

point des méthodes de jeu.


Pour cela, j'ai crée plusieurs tables qu'il me faudrait pouvoir lier à un

même formulaire principal. Je m'explique.


En remplissant le champs "Driver / Jockey" de la table "Drivers/Jockeys" et

le champ "Cheval" de la table "Chevaux", j'aimerais pour remplir

automatiquement les champs "ID_Jockey" et "ID_Cheval" de la table

"Partants". Or, il me faudrait pour ça, pouvoir connecter un sous-formulaire

"Partants" à DEUX formulaires principaux, puisqu'on ne peut pas connecter un

formulaire à 2 sources de données distinctes, ou alors, il ne devient plus

possible d'écrire dans le formulaire.


Je poste ma base en PJ, en espérant que mon cas ne soit pas désespéré, en

remerciant par avance les âmes charitables qui viendront à mont secours.




La notion de formulaire est utilisée avec deux sens différents dans

LibreOffice :

- Un objet listé par Affichage> Objets de base de données> Formulaire. Peu

ou prou

c'est un document writer.

- à l'intérieur d'un de ces "objets" on crée des "formulaires" et

sous-formulaires

rattachés à des sources de données (table, requête, sql).


Un formulaire "première définition" peut contenir plusieurs formulaires

(deuxième définition) rattachés à des sources de données différentes.

C'est le cas du formulaire figurant dans la base jointe.


file:///C:\Users\Bernard\hubiC\Référentiel\HelpDoc\Doc OOo\exemples\Turf.odb


Pour en venir à ta question principale, si on veut éviter la programmation

de macros, le principe est de saisir les données figurant dans les tables

"annexes" (hippodromme, cheval, driver) *avant* de saisir dans les tables

principales (courses, partants).


La saisie des codes (cheval, driver) dans la table Partants sera automatique

lors de la sélection dans les listes déroulantes: le champ lié à la liste

est celui de la table Partants (id_cheval par exemple); la liste affiche les

libellés

de la table Chevaux et "retourne" l'identifiant correspondant qui est stocké

par

LibreOffice dans le champ de la table Partants.


Il reste possible de regrouper tout cela dans un seul formulaire comme

dans l'exemple joint. Quand un élément manque dans une liste

(hippodrome, cheval, jockey) on clique sur le bouton permettant

d'ajouter puis sur le bouton permettant de "retourner" où on était.


Concrètement dans le formulaire (première définition) j'ai inséré

des sections (visibles par des couleurs d'arrière-plan différentes).

Ceci (la section, pas la couleur) permet lors des clics sur les boutons

d'aller à la section concernée sans programmer.


Après avoir ajouté une donnée dans une table annexe et avoir

cliqué sur "Retour", il faut cliquer sur le bouton "Actualiser"

de la barre de navigation du formulaire pour rafraîchir la liste.