4/1/2014

Les sous-formulaires

Pour repartir sur une base propre, téléchargez la base club de sport.

Souvent les bases contiennent de très nombreuses données, de nature diverses et il n'est pas possible de les afficher toutes sur le même écran. Les applications sont alors structurées en plusieurs formulaires avec généralement un formulaire principal permettant d'accéder à des sous-formulaires pour avoir plus de détails.

Pour certaines applications, on peut souhaiter obtenir un formulaire pouvant faire référence aux données de plusieurs tables simultanément. Pour cela, il faut passer par les sous-formulaires. Un sous-formulaire est un composant auxiliaire du formulaire principal .

Le formulaire principal est appelé formulaire parent. Il correspond à une table de la base de données (e.g. les informations sur le coureur). Toutes les autres données gérées dans d'autres tables peuvent uniquement apparaitre dans ce formulaire en tant que composants auxiliaires dans des sous-formulaires (e.g. les informations sur les courses auquelles a participé le coureur). Un sous-formulaire est nécessaire pour chaque table supplémentaire.

L'objectif est ici de créer un formulaire permettant de visualiser des informations sur un coureur et contenant un sous-formulaire décrivant les courses auxquelles il a participé.

La création de ce formulaire se fait en 3 étapes :

Avant de pouvoir créer le formulaire et un sous-formulaire, il faut construire une requête permettant de lier le formulaire principal au sous-formulaire et une requête pour les champs calculés.

Pour récupérer les informations sur les courses des coureurs, on crée une nouvelle requête permettant d'obtenir le résultat ci-dessous :

A l'aide de l'assistant, on crée le formulaire principal et on base le sous-formulaire sur la requête. L'assistant vous demande quels seront les champs en commun entre le formulaire et le sous-formulaire. Sélectionnez l'option "Sous-formulaire basé sur la sélection manuelle des champs" et suivez les indications.

Appliquez-cette manipulation pour avoir les informations sur le coureur dans le formulaire principal et les informations sur les courses dans le sous-formulaire.

Le formulaire final ressemble à :

Un champ calculé

Comment faire pour rajouter un champ calculé affichant le meilleur rang du coureur ? (pensez à modifier les données en entrée du formulaire principal par une requête)