Automatiser l’impression d’un état en PDF sous Access 2007

On continue la série « Access et le format PDF » ! Dans un précédent article, il a été question d’automatiser en VBA, sous Access 2003 maximum, et à l’aide de PDFCreator. Mais comment fait-on avec Access 2007 ?

Access 2007 et les PDF

A priori, le code donné dans l’article précédent doit fonctionner également sous Access 2007. Mais le pack Office 2007 comporte également une impression PDF (voir cet autre article du blog). Autant l’utiliser directement, ça fera moins de code à écrire !

Voici comment transformer un état en PDF sous Access 2007 (à supposer que l’extension PDF ait été installée) :

Quelques infos complémentaires :

  • Le nom de l’état, dans l’exemple, est rpt Clients.
  • Le format PDF est défini par la constante acFormatPDF.
  • Le dernier paramètre de l’exemple est le chemin complet du fichier PDF à générer. Ici, un fichier Liste des clients.pdf va être créé, et il sera placé dans le dossier Documents de l’utilisateur en cours (ce dossier est donné par Documents sous Vista, et Mes documents sur un XP français). On pourrait améliorer ça, mais le but n’est pas de charger le code ici 😉
  • Si vous ajoutez un 4ème paramètre avec la valeur True, le fichier PDF s’ouvre automatiquement dans Acrobat Reader, après avoir été généré.

Vous aimerez aussi...

8 réponses

  1. coyote dit :

    Merci pour le petit bout de code…..dépannage rapide et efficace…

  2. Hervé Inisan dit :

    Charles > Le 4ème argument fournit le nom du fichier PDF. Il suffit de le remplacer par le contenu d’une zone de texte. Par exemple :

    A supposer que :

    • txtNomFichier est le nom de la zone de texte, sur le formulaire.
    • Que la procédure Sub / End Sub se situe dans le formulaire (sinon, remplacer Me par Forms![Nom du formulaire]).
    • Qu’on tape uniquement le nom du fichier dans la zone de texte, sans l’extension .pdf.

    Ouala !

  3. CHARLES dit :

    Salut, je tiens d’abord à vous dire un grand merci pour ce tuto, mais j’aimerais savoir s’il est possible de rendre dynamique le nom du fichier PDF a chaque impression .
    Par exemple affecter la valeur d’une zone de texte à chaque impression
    .D’avance merci

  4. Hervé Inisan dit :

    6yphe > Pas beaucoup plus d’éléments. Le complément SaveAsPDFandXPS est installé sur la machine cible (ou déployé avec le runtime) ?

    Sinon, il pourrait y avoir un lien avec le profil d’utilisateur (à confirmer).

  5. 6yphe dit :

    Bonjour,

    Comme Phil, je ne parviens pas à générer des pdf avec utilisation du runtime.
    Auriez-vous des éléments nouveaux résolvant de problème ?

    Merci d’avance et félicitations pour la qualité de votre site et des infos fournies.

  6. Adamou dit :

    bonjours à tous

  7. Hervé Inisan dit :

    Phil > Je n’ai pas eu le temps de tester sur le runtime SP2. Mais j’ai effectivement eu écho de problèmes de conversion PDF sur le runtime. Si j’ai plus d’infos, je posterai par ici.

  8. Phil dit :

    Fantastique : on obtient un résultat très correct avec très peu de code VBA.
    Le seul bémol, c’est que je ne suis pas parvenu à le faire fonctionner dans une base à partir d’un Runtime Access 2007 (même avec le runtime SP2 qui paraît-il corrige ce problème).
    Cela a pour effet d’afficher une boîte de dialogue qui dit que l’application va être arrêtée et on se retrouve dehors.
    J’ai essayé à tout hasard d’installer SaveAsPDFandXPS.exe mais rien n’y fait.

    Peut-être auriez-vous une solution ?

    Merci d’avance et bravo pour la richesse de votre site en informations pratiques.

    Philippe

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *