Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Aspect des contrôles au survol
Dans une précédente
astuce, nous avons découvert la technique permettant d'influer très facilement sur l'
aspect graphique des boutons d'un formulaire au
survol de la souris. Et pour cela, il nous avait suffi de régler quelques propriétés prévues à cet effet.
Dans ce nouveau volet et comme le démontre la capture ci-dessus, nous souhaitons agir sur l'aspect des
contrôles du formulaire, autres que les
boutons. Qu'il s'agisse d'une
zone de texte ou d'une
liste déroulante, le contrôle concerné se pare d'un fond jaune au
passage de la souris. Et comme il ne s'agit pas naturellement d'objets d'action, nous allons le voir, les
propriétés précédemment utilisées ne sont plus disponibles. L'
astuce consiste à contourner la limitation grâce aux
macros.
Source et procédure
Pour la démonstration, nous suggérons de récupérer la précédente petite
base de données avec ces réglages dynamiques déjà en place sur les
boutons.
Comme l'indique le volet de navigation sur la gauche de l'écran, cette petite
base de données n'est constituée que d'une table et d'un
formulaire.
- Dans ce volet de navigation, double cliquer sur le formulaire f_ajout pour l'exécuter,
- Pointer alors sur l'un et l'autre bouton à l'aide de la souris,
Comme vous pouvez le voir, chaque bouton change d'aspect au
passage du curseur de la souris. Et chaque bouton recouvre son aspect initial dès lors que la souris s'échappe de la zone d'influence.
En revanche et à ce stade, si vous survolez les autres
contrôles du formulaire, rien ne se produit. C'est tout l'enjeu de cette nouvelle
astuce. La zone de texte, comme chacune des trois listes déroulantes, doivent changer d'apparence au passage du pointeur.
Macro pour modifier les propriétés
Les
macros Access permettent d'influer sur certaines
propriétés des
contrôles de formulaire. Ces changements doivent être opérés au
survol de la souris. Cet
événement est naturellement géré par
Access et ce, pour n'importe quel objet.
- Tout à fait à gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste des propositions, choisir le mode création,
- Sur le formulaire en conception, cliquer sur le bouton Ajouter pour le sélectionner,
Si la
feuille de propriétés est absente, vous devez l'afficher en cliquant sur le bouton du même nom dans le
ruban contextuel Création.
- Activer alors l'onglet Format de la feuille de propriétés,
Vous notez la présence notamment des
propriétés Couleur sélectionnée par pointage et
Couleur texte sélectionnée par pointage. Ce sont ces deux attributs que nous avons réglés lors de l'
astuce précédente pour créer des effets graphiques dynamiques, au survol de la souris.
- Cliquer désormais sur la zone de texte située juste au-dessus,
Les propriétés de format sont nombreuses. Mais aucune ne permet de définir des jeux de couleurs dynamiques comme c'est le cas pour les
boutons. Et vous pouvez constater qu'il en va de même pour les
listes déroulantes, si vous sélectionnez l'une d'entre elles. La
feuille de propriétés renseigne également sur les noms des objets sélectionnés. Les trois contrôles que nous devons paramétrer par macro sont nommés respectivement : rs, dep, villes et activites.
- Cliquer de nouveau sur la zone de texte nommée rs pour la sélectionner,
- Activer alors l'onglet Evénement de sa feuille de propriétés,
- Cliquer ensuite dans la zone vide de son événement Sur souris déplacée,
- Dès lors, cliquer sur le petit bouton qui se propose à l'extrémité droite,
- Dans la boîte de dialogue qui suit, choisir Générateur de macro et valider par Ok,
Nous basculons ainsi dans l'
éditeur de macro Access.
- Avec la liste déroulante, choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, désigner la zone de saisie par son nom, soit : rs,
- Dans la zone Propriété, choisir l'attribut Couleur fond,
- Dans la zone Valeur, entrer le code hexadécimal suivant : #FFFF00,
Ce code hexadécimal correspond à un jaune vif.
- En haut de la fenêtre Access, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour (CTRL + S),
- Puis, l'exécuter avec la touche F5 du clavier par exemple,
- Déplacer alors la souris sur la zone de saisie,
Comme vous le constatez, sa couleur de fond réagit instantanément. En revanche, si vous placez le
pointeur de la souris en dehors de la zone de texte, celle-ci ne retrouve pas son aspect initial. Ce phénomène est pour l'instant tout à fait normal. Nous aborderons l'astuce permettant de corriger ce défaut en temps voulu. Tout d'abord, il s'agit de configurer les trois
listes déroulantes exactement de la même façon.
- Revenir en mode conception du formulaire,
- Sélectionner la première liste déroulante nommée dep,
- Cliquer dans la zone de sa propriété Sur souris déplacée,
- Cliquer sur le petit bouton à l'extrémité droite,
- Dans la boîte de dialogue, choisir Générateur de macro et cliquer sur le bouton Ok,
- Dans l'éditeur de macro, déployer la liste déroulante,
- Choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, inscrire l'intitulé dep,
- Avec la liste déroulante de la zone Propriété, choisir Couleur fond,
- Dans la zone Valeur, saisir le même code que précédemment, soit : #FFFF00,
- Dans le ruban, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour,
Désormais, il s'agit de reproduire exactement le même protocole pour les
listes déroulantes nommées villes et activites. Il est donc question d'adapter les intitulés en conséquence dans la zone Nom du contrôle.
Réinitialiser l'aspect des contrôles
Pour annuler la couleur de fond lorsque la souris quitte la zone d'influence du contrôle concerné, il n'existe pas d'événement dédié. L'
astuce consiste à reprogrammer ces couleurs, toujours par
macro, mais lorsque la souris bouge sur les rectangles en dessous des contrôles, donc en dehors des zones concernées.
- Sur le formulaire en conception, cliquer sur le rectangle gris qui encadre la zone de texte,
Bien qu'il s'agisse d'un simple rectangle, il propose lui aussi l'
événement que nous avons précédemment exploité.
- Cliquer sur le petit bouton de son événement Sur souris déplacée,
- Choisir Générateur de macro et valider par Ok,
L'
action DéfinirPropriété doit être enclenchée à quatre reprises pour chacun des contrôles à réinitialiser : rs, dep, villes et activites. Le
code #FEFBF8 correspond à un gris très clair qui est la couleur attribuée par défaut à ces quatre contrôles.
- Dès lors enregistrer et fermer la macro,
- Enregistrer le formulaire et l'exécuter,
- Déplacer la souris sur la zone de texte puis la sortir ensuite de la zone d'influence,
Comme vous le constatez, le contrôle se pare tout d'abord d'un fond jaune qui est réinitialisé à la couleur d'origine lorsque la souris sort de la zone de saisie en se déplaçant sur le rectangle du dessous. Pour parachever la solution, en mode conception, il convient de programmer exactement le même enchaînement de ces quatre actions sur l'
événement Sur souris déplacée, pour le premier rectangle placé sous les trois listes déroulantes.
Bien sûr et pour plus de sureté, ce principe peut être étendu sur la zone du
formulaire. En effet, si vous sortez très vite de la zone de saisie vers le bas, l'événement du second rectangle n'a pas le temps de se déclencher. De fait, la couleur jaune persiste.
Ce mécanisme est absolument dédié à une
application d'évaluation par Qcm. Ainsi, chaque choix pointé avec la souris est automatiquement mis en valeur.