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.