Les boutons-radio et la fonction Choisir

Les boutons radios représentent une alternative très esthétique aux listes déroulantes. En effet, dans la figure ci dessus, on aurait aisément pu imaginer une liste déroulante avec comme choix "Dessin animé", "Horreur", "Comédie" et "Action". La présentation en boutons radios est parfois plus parlante.

Notions abordées :

Vous pouvez télécharger ici la base de données ayant servi à l'élaboration de cette page.

Marche à suivre

L'exemple que nous allons travailler est simplissime. Il s'agit d'une table simple contenant 2 champs : TitreFilm et Genre, qui sont donc destinés à stocker votre collection de films en DVD.

Créons la table de base

Dans une base de données vide, créez une table T_Film avec les deux champs suivants :


Le commentaire "1 : dessin animé, etc." est facultatif. C'est juste pour notre information.

TitreFilm est en texte, et Genre est en numérique, octet. Il est important que le Genre soit du numérique, nous le verrons quand nous créerons les boutons radio.

Fermez la table, enregistrez-là sous T_Film.

Créons le formulaire qui va contenir les boutons radio

Créez un nouveau formulaire, en mode création, basé sur T_Film. Placez-y le champ TitreFilm.

Allumez la baguette magique dans la boîte à outils . Dessinez un groupe d'options en dessous de TitreFilm. L'assistant se met en route :

Si 9 films sur 10 sont des dessins animés, vous pouvez choisir comme valeur par défaut "Dessin animé", histoire que ce bouton radio soit déjà activé lors de l'entrée dans un nouvel enregistrement. Dans notre cas : Pas de valeur par défaut.

Maintenant, il faut que nous assignions une valeur NUMERIQUE pour chaque choix. Pour une raison qui m'échappe, Access ne permettra pas, même avec la version 2003, d'entrer du texte, ou de simplement laisser le texte proposé (Dessin animé, etc.) Par contre, à la place de 1,2,3,4 on aurait pu écrire 100, 76, 1012 et 599. Mais pour des raisons de commodité, notamment l'utilisation de la fonction Choisir que nous verrons plus loin, laissons 1,2,3,4.

La valeur du bouton radio que voius allez sélectionner doit maintenant se transférer dans le champ Genre. D'ou l'utilité de l'avoir défini en Numérique dans la table, comme nous l'avons fait tout à l'heure.

Cette boîte sert uniquement à définir l'apparence de votre groupe d'options. Le plus esthétique à mon sens est Cases d'options (Appelés également boutons radio), en style enfoncé pour garder un look très "Windows". Choisir un style Cases à cocher me parait un non sens total, en ce sens qu'on a nettement l'impression de pouvoir choisir plus d'une catégorie, ce qui est conceptuellement impossible puisqu'un seul chiffre émanera de notre choix. D'ailleurs Access vousempêchera de cocher deux cases si vous essayez.

L'autre présentation, des boutons-bascules est sympathique , mais je trouve que le bouton pressé saute moins aux yeux que le bouton radio. Question de goût...

C'est terminé. Voici le formulaire en mode saisie de données. Entrez "Les griffes de la nuit", cochez Film d'horreur ::

Entrons quelques données

Créez également ces autres films :

Fermez ce formulaire. Enregistrez-le sous F_Film.

Allez dans T_Film. Constatez qu'effectivement, des numéros sont installés :

Maintenant, comment faire pour visualiser les noms des genres et pas simplement leur numéro ailleurs que dans le formulaire ?

Nous allons utiliser la fonction Choisir.

Créons la requête qui va permettre de voir autre chose que des chiffres pour les genres

Créez une nouvelle requête en mode création basée sur T_Film. Placez-y les deux champs comme ceci :

Explications de la fonction Choisir

La fonction Choisir fonctionne comme ceci :

Choisir ([NomDuChamp];"Truc à écrire si le champ vaut 1";"Ceci si ça vaut 2";"ça si c'est 3";"ça si c'est 4";"Si c'est 5, etc.")

Dans notre cas :

Choisir ([Genre];"Dessin animé";"Horreur";"Comédie";"Action")

On comprend maintenant mieux pourquoi, lorsque nous vons conçu notre groupe d'options, je vous avais recommandé de laisser 1,2,3 et 4 comme proposé.

Ecrivez ici cette fonction :

Lorsque vous appuyez sur ENTER, il ajoute Expr1. Remplacez le par TXTGenre

TXTGenre: Choisir([Genre];"Dessin animé";"Horreur";"Comédie";"Action")

Vous ne pouvez pas simplement écrire Genre, parce que c'est un nom de champ.

Voici le résultat :

Voyons ce qui se passe quand on entre quelques valeurs inattendues dans Genre :

On pourrait bien entendu limiter les valeurs entre 1 et 4 dans la table, ainsi qu'interdire les valeurs nulles, mais c'est une autre histoire.

Fermez cette requête, appelez-là R_FilmGenreEnTexte.

Je vais maintenant entrer encore quelques films...

Création d'un état regroupé par genre

... afin de générer un état regroupé par TXTGenre (E_GroupeTXTGenre), basé sur R_FilmGenreEnTexte:

Qui donne cet intéressant résultat :

---