4/1/2014

Des contrôles particuliers

Lier un champ à une liste de données

Si on saisit plusieurs enregistrements dans le formulaire COURSE, on se rend rapidement compte qu'il serait plus facile d'associer une liste déroulante au choix de la ville plutôt que de devoir saisir "n" fois le même nom de ville (avec en plus éventuellement des erreurs).

Commencez par créer une table VILLES contenant au moins 5 noms de villes que l'on va utiliser pour alimenter la liste.

Nous allons maintenant transformer le champ "Ville" du formulaire en "Zone de liste".

Dissociez l'étiquette de ce champ et le champ (clic droit sur le groupe puis dissocier). Transformez le contrôle en liste (clic droit "Remplacer par… Zone de liste").

Il nous reste maintenant à associer cette liste à la table VILLES via une requête SQL (Données > Type de contenu de liste > SQL). Tapez la requête permettant d'afficher la liste des villes dans le champ (Contenu de liste).

Vérifiez ensuite que la manipulation a fonctionné en désactivant le mode conception de formulaire. Si tout fonctionne, supprimez la liste déroulante inutile.

Boîte combinée

Une boîte combinée est une liste déroulante contenant les valeurs d'un champ mais avec l'avantage de pouvoir saisir une valeur supplémentaire n'existant pas dans la table sur laquelle est basée la liste.

Créez une nouvelle liste pour le choix de la ville qui sera cette fois modifiable.

Limiter la saisie dans les contrôles

Il est très important d'anticiper les erreurs de saisie des utilisateurs. Pour cela, il faut limiter leurs possibilités de saisie quand cela est possible. Par exemple, pour la date de naissance du coureur, on pourrait dire que cela n'a pas de sens qu'elle soit antérieure au 01/01/1920.

Accédez aux propriétés du champ Date de naissance et modifier la date min et max.

De même limitez la saisie à 5 chiffres pour le code postal. Pouvez-vous limiter les saisies fantaisistes pour d'autres champs de ce formulaire ?

Zone de groupe

Une zone de groupe vous permet, comme pour la boîte combinée et la zone de liste, de choisir parmi une liste prédéterminée représentée par un ensemble de bouton radio. L'une des différences entre une zone de groupe et les deux autres est que toutes les options sont visibles à l'écran.

Une autre différence est que vous devez saisir la description, appelée "étiquette", au lieu de choisir parmi une liste qui se retrouve dans une table ou une requête.

La dernière différence est qu'il faut déterminer la valeur qui sera conservée dans le champ pour chacune des étiquettes que vous avez saisie. On peut décider de stocker des valeurs numériques dans la table COUREUR qui correspondent chacune à un statut (par exemple : 1=célibataire, 2=marié, 3=veuf)

Créez une zone de groupe qui servira à déterminer le statut social du coureur (célibataire, marié, veuf). La valeur qui sera choisie sera conservée dans le champ à créer "Statut" de la table COUREUR. Pensez à utiliser l'assistant pour créer ce groupe.

Naviguer dans les enregistrements d'un formulaire

Nous allons ajouter des boutons pour naviguer entre les enregistrements

L'affichage de notre formulaire est simple : nous avons, sur une seule page, les informations sur un coureur. L'emplacement de la barre de navigation (perdue dans les autres éventuelles barres d'outils) pourrait rendre difficile la prise en main du formulaire par nos futurs utilisateurs. Nous allons donc placer une barre de navigation en bas de notre formulaire.

Pour cela, nous ouvrons les "Autres contrôles" et choisissons "Barre de navigation" que nous paramétrons ("Contrôle") pour n'afficher que la "Navigation" (on masque les autres affichages de la barre de navigation comme illustré sur la capture d'écran suivante) :

Bouton de commande

Les boutons de commande permettent d'ajouter des boutons et d'y associer des actions qui affectent le formulaire ou la base de données. Par exemple, passer d'un enregistrement à un autre, ouvrir ou imprimer un formulaire ou un état.

Il n'existe pas d'assistant pour faciliter la création de boutons de commande pour le moment. Les macros seront développées plus tard dans ce cours.

Choisir une date à l'aide d'un calendrier

Il est possible de faire 3 listes déroulantes, une pour le jour, l'autre le mois et une autre pour l'année, mais OpenBase permet un choix à l'aide d'un calendrier que l'on peut régler à sa guise.

Pour cela utilisez le contrôle "Date" présent dans la barre d'outils "Autres contrôles". Dans le propriétés, il suffit d'activer l'option : Déroulante

Modifiez le champ correspondant à l'âge du coureur pour permettre une saisie via un calendrier.

Une possible correction

clubsportCorrectionFormulaires.odb