Annuler l'impression d'un état s'il ne contient aucun enregistrement

Par défaut, vous pouvez imprimer les états qui ne contiennent aucun enregistrement. Pour résoudre ce problème, vous pouvez utiliser une macro ou un code Microsoft Visual Basic pour Applications (VBA) pour détecter l’absence d’enregistrements dans un état, puis annuler l’opération d’impression. Les étapes de cet article expliquent comment utiliser ces deux techniques.

Que voulez-vous faire ?

Vous souhaitez probablement annuler l’impression d’un état s’il ne contient aucun enregistrement. Par exemple, si vous commencez à vendre un nouveau produit, il est probable qu’il vous reste un certain temps d’enregistrer des ventes. Par conséquent, vous devez envisager la possibilité que certains de vos états ne contiennent pas d’enregistrements de détails et que des fonctions d’agrégation, telles que la fonction Compte, n’ont peut-être rien à compter. Pour gérer cette occurrence, vous pouvez créer une macro qui annule la tâche d’impression. Vous pouvez également ajouter quelques lignes de code VBA placé avec soin pour faire la même chose. VBA est le langage de programmation qu' Access utilise.

Vous ajoutez la macro ou le code VBA à la procédure événementë Sur Aucuneda ta de l’état. Access déclenche l’événement Sur absence de données chaque fois que vous exécutez un rapport qui ne possède aucun enregistrement. La macro et le code VBA décrits dans cet article affichent un message approprié et annulent l’impression de l’état lorsque celui-ci ne contient aucune donnée. Lorsque vous ajoutez une macro ou du code VBA à la procédure événement de données Sur absence de données, la macro ou le code VBA s’exécutent chaque fois que vous ouvrez un état ne contenant aucun enregistrement. Lorsque vous cliquez sur OK pour fermer l’un ou l’autre des messages d’alerte, la macro ferme également l’état vierge. Lorsque vous ajoutez la macro ou le code VBA à l’état, un état vierge ne s’ouvre pas lorsque vous essayez de l’afficher en mode État ou en mode Page, mais vous pouvez l’ouvrir en mode Création.

Utiliser une macro pour annuler l’impression

La macro décrite dans cette section affiche un message d’alerte lorsque vous essayez d’imprimer un état vierge. Lorsque vous cliquez sur OK pour fermer la boîte de message, la macro annule automatiquement l’impression. Si vous n’incluez pas de message d’alerte, il semble que rien ne se passe lorsque vous tentez d’imprimer l’état, ce qui peut semer la confusion parmi les utilisateurs du rapport.

Créer la macro

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état à modifier, puis cliquez sur Mode Création.

  2. Sous l’onglet Création, dans le groupe Afficher/Masquer, cliquez sur Feuille de propriétés.

    - ou -

    Double-cliquez sur la zone dans le coin supérieur gauche ou droit de l’état, selon vos paramètres régionaux et linguistiques.

  3. Cliquez sur l’onglet Événement, puis dans la zone De propriété Sur aucune donnée, cliquez Bouton Générateur .

    La boîte de dialogue Choisir Générateur s’affiche.

  4. Cliquez sur Générateur demacro, puis sur OK.

    Le concepteur de macros démarre et affiche une macro vide.

  5. Dans la liste drop-down des actions de macro dans la fenêtre de conception de macro, sélectionnez Boîte de message dans la liste.

  6. dans la zone Message, tapez le texte de votre message d’alerte.

    Par exemple, vous pouvez entrer ce qui suit : il n’y a aucun enregistrement à signaler.

  7. Si vous le souhaitez, modifiez la valeur de l’argument dans la zone Bip de Oui à Non et, dans la liste Type, sélectionnez le type d’icône à faire apparaître dans votre message d’alerte.

  8. Dans la zone Titre, tapez le titre de votre message d’alerte.

    Par exemple, vous pouvez entrer Aucun enregistrement.

  9. Sélectionnez la liste drop-down des actions de macro sous l’action Boîte de messages, puis sélectionnez AnnulerVente.

  10. Sous l’onglet Création, dans le groupe Fermer, cliquez sur Enregistrer.

  11. Sous l’onglet Création, dans le groupe Fermer, cliquez sur Fermer. Si un message d’alerte s’affiche et vous demande si vous voulez enregistrer les modifications apportées à la macro et à la propriété de l’état, cliquez sur Oui,fermez l’état, enregistrez vos modifications si vous y êtes invité, puis poursuivez les étapes suivantes pour la tester.

Tester votre macro

  • Dans le volet de navigation, cliquez avec le bouton droit sur l’état contenant la macro, puis cliquez sur Imprimer. En fonction des options choisies, Access affiche un message d’alerte.

    Lorsque vous cliquez sur OK pour fermer le message, l’action AnnulerEvent arrête l’opération d’impression. Étant donné que vous n’avez spécifié aucun autre événement (comme l’ouverture de l’état pour affichage), l’état se ferme.

Haut de page

Utiliser du code VBA pour annuler l’impression

Le code VBA décrit ici fonctionne comme la macro décrite dans la section précédente : il affiche un message d’alerte lorsque vous ouvrez un état vierge, puis annule l’opération d’impression lorsque vous fermez le message d’alerte.

Ajouter du code VBA

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état à modifier, puis cliquez sur Mode Création.

    Remarque : Pour effectuer cette procédure, utilisez un état qui ne contient aucun enregistrement.

  2. Sous l’onglet Création, dans le groupe Afficher/Masquer, cliquez sur Feuille de propriétés.

    - ou -

    Double-cliquez sur la zone dans le coin supérieur gauche ou droit de l’état, selon vos paramètres régionaux et linguistiques.

  3. Cliquez sur l’onglet Événement, puis dans la zone De propriété Sur aucune donnée, cliquez Bouton Générateur .

    La boîte de dialogue Choisir Générateur s’affiche.

  4. Cliquez sur Générateur de code,puis sur OK.

    L’Visual Basic Éditeur de pages démarre et affiche une procédure événementuse vide.

  5. Tapez le code suivant dans l’Éditeur Visual Basic de façon à ce que la procédure de Report_NoData se présente exactement comme suit lorsque vous avez terminé :

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. Lorsque vous avez terminé, cliquez sur Fichier,puis sur Enregistrer.

  7. Cliquez sur Fichier,puis sur Fermer et revenir à Microsoft Access.

  8. Fermez l’état ouvert, puis cliquez sur Oui pour confirmer l’enregistrer.

  9. Dans le volet de navigation, cliquez avec le bouton droit sur l’état que vous vient de modifier, puis cliquez sur Imprimer. En fonction des options choisies, Access affiche un message d’alerte.

La Report_NoData utilise la fonction MsgBox pour afficher le message « Il n’y a aucun enregistrement à signaler » et un bouton OK. Lorsque vous cliquez sur OK,la ligne « Cancel=True » de la procédure demande à Access d’annuler l’état. L’annulation est un argument qui est automatiquement transmis à la procédure événementaire et toujours vérifié par Access à la fin de la procédure événementaire.

Haut de page

Besoin d’aide ?

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×