Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Que voulez-vous faire ?

Vous souhaiterez probablement annuler l’impression d’un rapport lorsqu’il ne contient aucun enregistrement. Par exemple, si vous commencez à vendre un nouveau produit, il y aura probablement une période pendant laquelle vous n’avez pas encore enregistré de ventes. Par conséquent, vous devez envisager la possibilité que certains de vos rapports ne contiennent pas d’enregistrements de détails et que les fonctions d’agrégation, telles que la fonction Count , n’aient rien à compter. Pour gérer correctement une telle occurrence, vous pouvez créer une macro qui annule le travail d’impression. Vous pouvez également ajouter quelques lignes de code VBA soigneusement placé pour faire la même chose. VBA est le langage de programmation utilisé par Access.

Vous ajoutez la macro ou le code VBA à la procédure événementielle On No Data de l’état . Access déclenche l’événement On No Data chaque fois que vous exécutez un rapport sans enregistrement. La macro et le code VBA décrits dans cet article affichent un message approprié et annulent l’impression du rapport lorsque ce rapport ne contient aucune donnée. Lorsque vous ajoutez une macro ou du code VBA à la procédure événementielle On No Data , la macro ou le code VBA s’exécute chaque fois que vous ouvrez un rapport qui ne contient aucun enregistrement. Lorsque vous cliquez sur OK pour fermer l’un ou l’autre des messages d’alerte, la macro ferme également le rapport vide. Lorsque vous ajoutez la macro ou le code VBA au rapport, un rapport vide ne s’ouvre pas lorsque vous essayez de l’afficher en mode Rapport ou En mode Page, mais vous pouvez ouvrir le rapport 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 rapport vide. Lorsque vous cliquez sur OK pour fermer la boîte de message, la macro annule automatiquement l’opération d’impression. Si vous n’incluez pas de message d’alerte, il semble que rien ne se passe lorsque vous essayez d’imprimer le rapport, ce qui risque d’embrouiller les utilisateurs du rapport.

Créer la macro

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le rapport à 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 située dans le coin supérieur gauche ou droit du rapport, en fonction de vos paramètres régionaux et linguistiques.

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

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

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

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

  5. Dans la liste déroulante des actions de macro de la fenêtre de conception de macro, sélectionnez MessageBox 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 que vous souhaitez afficher 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 déroulante des actions de macro sous l’action MessageBox , puis sélectionnez Annulerévénement.

  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 souhaitez enregistrer les modifications apportées à la macro et à la propriété de rapport, cliquez sur Oui, fermez votre rapport, enregistrez vos modifications si vous y êtes invité, puis passez aux étapes suivantes pour le tester.

Tester votre macro

  • Dans le volet de navigation, cliquez avec le bouton droit sur le rapport qui contient la macro, puis cliquez sur Imprimer. Selon les options que vous avez choisies, Access affiche un message d’alerte.

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

Haut de la page

Utiliser le 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 rapport vide, 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 le rapport à modifier, puis cliquez sur Mode Création.

    Remarque : Pour effectuer cette procédure, utilisez un rapport 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 située dans le coin supérieur gauche ou droit du rapport, en fonction de vos paramètres régionaux et linguistiques.

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

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

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

    Visual Basic Editor démarre et affiche une procédure événementielle vide.

  5. Tapez le code suivant dans Visual Basic Editor afin que la procédure Report_NoData s’affiche 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 = TrueEnd 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 le rapport ouvert, puis cliquez sur Oui pour confirmer l’enregistrement.

  9. Dans le volet de navigation, cliquez avec le bouton droit sur le rapport que vous venez de modifier, puis cliquez sur Imprimer. Selon les options que vous avez choisies, Access affiche un message d’alerte.

La procédure Report_NoData utilise la fonction MsgBox pour afficher le message Il n’y a pas d’enregistrements à signaler et un bouton OK . Lorsque vous cliquez sur OK, la ligne « Cancel=True » dans la procédure indique à Access d’annuler le rapport. Cancel est un argument qui est automatiquement passé à la procédure événementielle et qui est toujours vérifié par Access lorsque la procédure événementielle se termine.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.