Dans une base de données créée avec Access, de Microsoft, vous avez conçu des états récapitulatifs abritant des sous-états. Ces derniers permettent de présenter des informations issues de requêtes (tris par sous-catégories, etc.). Or, si la requête ne contient aucune donnée, le sous-état sera vide et vous imprimerez un rapport sans grand intérêt. Pour éviter cela, il faut supprimer l’affichage des sous-états en mode Prévisualisation ou Impression grâce à la propriété HasData. Voici comment procéder.
Réalisez une base de données des albums de vos artistes préférés, par exemple. Une fois vos tables mises en place, élaborez des requêtes qui affichent les noms des auteurs et de leurs disques en fonction du support utilisé (CD-audio, minidisque, cassette…). Concevez ensuite un sous-état par type de média. Dans la fenêtre Base de données, optez pour l’onglet Etats. Activez [nouveau]. Choisissez Assistant Etat, puis l’une des requêtes, comme RQ _AlbumParCD (qui recherche les albums sur CD-audio), et validez par [ok].
Sélectionnez les champs à afficher dans le sous-état, par exemple le nom de l’artiste et de l’album. Activez [suivant]. Définissez les options de regroupement, de tri, de présentation des données et de styles dans les étapes suivantes. Avant de valider par [terminer], donnez comme nom ET _SousEtat au sous-état.
Dans la page Etat de la fenêtre Base de données , cliquez sur [nouveau]. Optez pour EtatInstantané : colonnes, et choisissez la table correspondant à la table principale (celle des noms des albums). Validez par [ok]. Sélectionnez Création du menu Affichage pour basculer l’état en mode d’édition. Agrandissez la section Détails. Enregistrez l’état sous le nom ET_EtatPrincipal. Dans la section Détails, insérez le contrôle Sous-formulaire/Sous-état de la boîte à outils. Cochez [états et formulaires] et sélectionnez ET_SousEtat. Activez [suivant].
Affectez un lien entre les champs (ici, celui désignant le média) de l’état principal et du sous-état. En général, le choix proposé par Access est bon si les deux champs sont liés. Cliquez sur [suivant] et nommez le sous-état SousEtat1. Validez par [terminer]. Choisissez Etat dans la liste Objet située à l’extrémité gauche de la barre d’outils Mise en forme (Formulaire/Etat). Puis cliquez sur l’icône Propriétés de la barre d’outils Créer un formulaire.
Dans la fenêtre des propriétés de l’état ET_EtatPrincipal, cliquez sur l’onglet Evénement. Repérez la propriété Sur Activé. Cliquez dans le champ correspondant, puis sur le bouton […]. Dans la fenêtre qui s’affiche, choisissez Générateur de code.
Saisissez ensuite le listing ci-dessous. Sauvegardez les modifications en cliquant sur le bouton [enregistrer]. Affichez la fenêtre d’édition de l’état et choisissez la commande Aperçu avant impression dans le menu Affichage.