Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2011, 19h47   #1
Invité de passage
 
Jean-Paul MARTELLE
Inscription : juillet 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Jean-Paul MARTELLE
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 4
Points : 0
Points : 0
Par défaut Génération de fichiers PDF

Bonjour à tous, je fais appel à votre sagacité car je sèche.

Partant d'un report Access 2007, je dois générer un fichier PDF par page (chaque fichier ayant un nom piloté par un champ de la requête source).
La séquence suivante, qui est appelée en bouclant (en DAO) sur les enregistrements de la requête, fonctionne correctement mais avec lourdeur car l'état est ouvert et fermé à chaque appel.
Code :
1
2
3
4
5
6
7
8
 
With DoCmd
 .OpenReport strReportName, acViewPreview, , strWhere, acHidden 'ouverture état en mode caché
 
 .OutputTo acOutputReport, strReportName, acFormatPDF, strFileFullName, ysnOpenReader 'impression en PDF
 
 .Close acReport, strReportName 'fermeture état
End With
Comment n'ouvrir (et ne fermer) qu'une seule fois le report pour n'appeler que la 2ème instruction (DocCmd.OutputTo), en limitant l'impression à la page courante ?

En d'autres termes comment piloter en VBA l'option "pages de ... à ..." proposée par le menu "Enregistrer sous PDF" d'Access ?

A défaut d'enregistreur de macro, je n'ai pas trouvé.

Merci d'avance.
arundel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 09h33   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Voir la FAQ.

http://access.developpez.com/faq/?pa...ressionEtatPpP

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h32   #3
Invité de passage
 
Jean-Paul MARTELLE
Inscription : juillet 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Jean-Paul MARTELLE
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 4
Points : 0
Points : 0
Bonjour Loufab et merci pour ta réponse,

J'avais effectivement vu cette solution dans la FAQ mais elle s'est révélée inadéquate pour mon problème, voici pourquoi.

D'abord il faut invoquer PDFCreator (ou équivalent) comme imprimante par défaut. Très facile.

Ensuite de deux choses l'une :
- soit saisir manuellement dans PDFCreator le nom de chaque fichier de sortie : injouable,
- soit utiliser les composants COM associés à PDFCreator pour piloter les paramètres adéquats.

Cerise sur le gâteau : il faut inclure une temporisation par API Windows pour éviter le blocage engendré par les instances des impressions créées. A noter que chaque itération (page) équivaut à ouvrir puis fermer une instance de PDFCreator.
Je l'ai fait : c'est lourd et très peu performant.

Ce que je recherche c'est comment forcer le n° de la page à imprimer dans l'option "enregistrer sous …PDF" d'Access 2007.
A priori, il n'y a pas de raison pour que ce paramètre ne soit pas positionnable par programme, mais comment ?...
arundel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web