Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Colorier l'enregistrement actif
Cette nouvelle
astuce Access montre comment surligner la ligne de l'enregistrement cliqué sur un
formulaire tabulaire . L'objectif est évident. Dans un jeu de données compact, il s'agit de faire ressortir visuellement pour l'audience, l'enregistrement étudié.
Sur l'exemple finalisé illustré par la capture, à chaque clic sur un élément d'une ligne, c'est tout l'enregistrement concerné qui est mis en valeur par une couleur de fond rouge foncé.
Source et procédure
Pour la mise en place de cette technique, nous proposons de récupérer les travaux que nous avions avancés à l'occasion de l'
astuce précédente. Sur un
formulaire tabulaire , elle avait consisté Ã
filtrer les enregistrements en fonction de choix émis par le biais de
deux listes déroulantes reliées entre elles .
Télécharger le fichier surligner-enregistrement-actif.rar en cliquant sur ce lien ,
Le décompresser dans le dossier de votre choix,
Double cliquer sur le fichier résultant pour l'ouvrir dans Access ,
Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
Dans le volet de navigation, double cliquer sur le formulaire f_source pour l'exécuter,
Avec la première liste déroulante , choisir un département ,
Avec la seconde liste déroulante , choisir une ville associée,
Comme vous pouvez le voir, Ã chaque choix, l'extraction s'ajuste dans le
formulaire pour offrir uniquement les enregistrements correspondant aux
critères . Mais à ce stade bien sûr, si vous cliquez sur l'un des
enregistrements extraits , rien ne se produit. La ligne n'est pas mise en valeur. C'est tout l'enjeu de cette
astuce .
En haut à gauche du ruban Accueil , cliquer sur la flèche du bouton Affichage ,
Dans la liste, choisir le mode Création ,
Nous basculons ainsi dans la vue en conception du
formulaire . La
zone Détail héberge les trois champs décrivant chaque enregistrement extrait. Dans l'
entête du formulaire , en haut à droite de la zone grisée, vous notez la présence d'une zone de texte. Pourtant, elle n'était pas visible en exécution.
Cliquer sur cette zone pour la sélectionner,
Puis, activer l'onglet Format de sa feuille de propriétés ,
Comme vous pouvez le voir, le nom de cette zone est
Actif . De plus, sa
propriété Visible est réglée sur
Non . C'est elle qui doit servir à prélever le numéro de la ligne cliquée pour déclencher ensuite une
règle de mise en forme conditionnelle destinée à faire surgir l'enregistrement complet.
Double cliquer sur la valeur Non de sa propriété Visible ,
Nous la basculons ainsi sur l'état opposé. Elle sera visible le temps du développement pour bien comprendre le mécanisme. Puis, nous la masquerons de nouveau à l'issue.
Prélever la valeur de la ligne cliquée
C'est une
routine VBA élémentaire qui permet de résoudre le noeud du problème. Elle doit prélever l'identifiant du premier champ pour l'enregistrement cliqué afin de l'inscrire dans la
zone de texte nommée Actif . Mais pour que ce
code VBA fonctionne, il doit être déclenché sur un événement précis. Cet événement correspond à l'activation du
formulaire . Ce dernier est activé à chaque fois qu'il subit un clic.
Cliquer sur le petit carré gris tout à fait en haut à gauche du formulaire ,
Cette méthode permet de le sélectionner intégralement pour le désigner explicitement.
Dès lors, activer l'onglet Evénement de sa feuille de propriétés ,
Cliquer dans la zone vide de son événement Sur activation ,
Puis, cliquer sur le petit bouton à trois points à son extrémité droite,
Dans la boîte de dialogue qui suit, choisir Générateur de code et valider par le bouton Ok,
De fait, nous basculons dans l'
éditeur Visual Basic Access entre les bornes de la
procédure événementielle Form_Current . Son code se déclenchera à chaque activation, donc à chaque clic sur un enregistrement extrait.
Entre les bornes de cette procédure, ajouter l'instruction VBA suivante :
Private Sub Form_Current()
Me.Actif = Me.s_id
End Sub
Me désigne l'objet parent soit le
formulaire . Cette simple correspondance doit permettre d'inscrire dans la zone de texte nommée
Actif , la valeur du
champ s_id pour l'enregistrement cliqué. Il s'agit du premier champ restitué, celui de la
clé primaire . C'est implicitement que nous pointons sur la valeur de l'un et l'autre champs. Il s'agit de la propriété associée par défaut. C'est la raison pour laquelle nous ne précisons pas cette
propriété explicitement. Le
VBA est définitivement permissif.
Enregistrer les modifications (CTRL + S) puis fermer l'éditeur VBA Access ,
De retour sur le formulaire , l'enregistrer à son tour,
L'exécuter à l'aide de la touche F5 du clavier,
Sélectionner un département à l'aide de la première liste puis une ville à l'aide de la seconde,
Dès lors, cliquer sur la ligne de l'un des enregistrements restitués,
Comme vous le constatez, à chaque clic, le numéro de clé primaire de l'
enregistrement cliqué est parfaitement restitué dans la zone de texte, autrefois masquée, grâce à une triviale
instruction VBA Access . C'est cette correspondance de numéros qui doit aider à construire la
règle de mise en forme conditionnelle pour surligner l'enregistrement complet.
Surligner l'enregistrement cliqué
Le plus dur est donc fait. Désormais, la
règle de mise en forme doit vérifier l'égalité entre la valeur portée par la zone nommée Actif et les numéros des enregistrements extraits dans le
formulaire . Lorsque la correspondance est établie, une mise en valeur explicite doit être déclenchée.
En haut à gauche du ruban Accueil , cliquer sur la flèche du bouton Affichage ,
Dans la liste des propositions, choisir le mode Création ,
Sélectionner la zone de texte Actif en haut à droite du formulaire ,
Activer l'onglet Format de sa feuille de propriétés ,
Double cliquer sur la valeur Oui de sa propriété Visible pour la basculer à Non ,
Cliquer sur la règle verticale de la zone Détail en regard des champs,
Cette action a pour effet de les sélectionner tous. La
règle de mise en forme conditionnelle les concerne tous pour que la
ligne entière puisse être mise en valeur.
En haut à droite de la fenêtre Access , cliquer sur l'onglet Format pour activer son ruban,
Dans la section Contrôler la mise en forme , cliquer sur Mise en forme conditionnelle ,
Dans la boîte de dialogue qui suit, cliquer sur le bouton Nouvelle règle ,
Avec la première liste déroulante, choisir l'option Expression ,
En effet, il s'agit d'une expression de correspondance à bâtir avec une formule.
Dans la zone vierge sur la droite, inscrire l'expression suivante : [s_id]=[Actif] ,
A l'instar d'Excel, la
mise en forme conditionnelle va parcourir toutes les lignes du
formulaire tabulaire . Lorsque la correspondance entre ces deux champs sera établie, une mise en valeur spécifique doit se déclencher. Et comme tous les champs ont été sélectionnés, ils seront tous impactés.
Avec le pot de peinture, choisir un rouge foncé pour la couleur de fond,
Avec le bouton sur sa droite, choisir un gris très clair pour la couleur du texte,
Cliquer ensuite sur le bouton G pour appliquer un style gras à la ligne sélectionnée,
La zone Aperçu vous permet d'apprécier instantanément les réglages ainsi définis.
Cliquer sur le bouton Ok pour valider la création de la règle de mise en forme conditionnelle ,
De retour sur la première boîte de dialogue, cliquer de nouveau sur le bouton Ok,
De retour sur le formulaire , l'enregistrer avec le raccourci clavier CTRL + S ,
Puis, l'exécuter avec la touche F5 du clavier ,
Choisir un département avec la première liste déroulante et une ville associée avec la seconde,
Dès lors, cliquer sur l'une des lignes des enregistrements restitués,
Instantanément, c'est bien l'enregistrement complet qui surgit et qui est intégralement mis en valeur. Dans une prochaine
astuce , toujours sur la base de cette application, nous verrons comment fournir le résultat de synthèse sur le nombre d'enregistrements extraits.