Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 07/12/2010, 13h45   #1
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
Par défaut Etat en pdf ?

Bonjour,

J'ai un Etat sous access et je voudrais le sauvegarder en pdf pour l'attacher a un mail juste après.

J'ai ca comme code mais sa m'ouvre une fenetre me disant de choisir le format mais y a pas pdf dedans :s

Code :
1
2
3
 
 DoCmd.OpenReport "Program", acViewPreview, , , acWindowNormal
    DoCmd.OutputTo acOutputReport, "Program", acFormatPDF, "E:\GESTION DES OFFRES\EVOLUTION DES VERSIONS\TRAINING CENTER\OPEN COURSES\WORKING WITH NGO\" & RS6!reference & "\GENERAL\Programme.pdf"
Je dois installer quelque chose ?

sinon si quelqu'un a une meilleur solution je suis preneur

Merci d'avance
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 13h53   #2
Membre éprouvé
 
Avatar de Tonioyo
 
Anthony Schricke
Développeur informatique
Inscription : juin 2008
Messages : 342
Détails du profil
Informations personnelles :
Nom : Anthony Schricke
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2008
Messages : 342
Points : 455
Points : 455
Bonjour,

Une solution serrai d'installer un logiciel qui imprime en PDF comme par exemple PDFCreator et ensuite lancer une impression sur l'imprimante PDFCreator.

Celà rejoint l'exemple que vous avez posté.

PDFCreator sur sourceforge :
http://sourceforge.net/projects/pdfcreator/

Cordialement,

EDIT:

Le troisième paramètre de la méthode OutpuTo est un objet acFormat qui prends les valeurs suivantes (Access 2002) :
acFormatASP, acFormatDAP, acFormatHTML, acFormatIIS, acFormatRTF, acFormatSNP, acFormatTXT et acFormatXLS
Il n'existe pas de valeur acFormatPDF.
__________________
loi de LeBlanc : Plus tard signifie jamais. extrait de Coder proprement Auteur:Robert C. Martin
Tonioyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 10h50   #3
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
Arf merci de répondre déjà ^^

Mais le truc c'est que c'est un application sur un serveur donc je penses pas que j'aurai le droit d'y installer un logiciel x)

Par le code c'est vraiment pas possible ? Je vais tenter de passé par excell je penses alors :s genre exporter mon fichier sous excell et si sa marche je pourrais crée un .pdf mais bon

EDIT : Hum sa marche pas
Sa a bien crée le .xls et le .pdf mais avec de la merde dedans, il garde pas l'exact mise en page
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 14h40   #4
Membre éprouvé
 
Avatar de Tonioyo
 
Anthony Schricke
Développeur informatique
Inscription : juin 2008
Messages : 342
Détails du profil
Informations personnelles :
Nom : Anthony Schricke
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2008
Messages : 342
Points : 455
Points : 455
Bonjour,

Une imprimante s'installe en local et non sur un serveur. Il est vrai que la principale contrainte est l'installation obligatoire sur tous les postes clients qui utiliseront la base Access.

Le format pdf est un format de la société Adobe. Ce format est ouvert c'est à dire que les spécifications sont publiques. Adobe accorde une licence gratuite pour l'utilisation du format pdf dans des logiciels tiers.Il existe probablement une API pour créer un fichier en pdf.

http://www.adobe.com/content/dam/Ado...dfs/access.pdf

Cordialement,
__________________
loi de LeBlanc : Plus tard signifie jamais. extrait de Coder proprement Auteur:Robert C. Martin
Tonioyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 22h09   #5
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 255
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 255
Points : 1 870
Points : 1 870
Bonsoir,

Je veux faire pareil

J'ai déjà réussi à créer le pdf. Par contre cela me met la grouille complètement ailleurs chez certains utilisateurs (à cause de la bibliothèque "pdf creator" je pense) donc j'ai provisoirement désactivé le code

Voici mon code, inspiré de ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
      Set pdfc = New clsPDFCreator   ' Instancie un nouvel objet PDFCreator
      'Paramétrer l'objet PDFCreator
      With pdfc
        .cStart "/NoProcessingAtStartup"
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = MonPath & "docs\"
        .cOption("AutosaveFilename") = "F" & Format(cd_fc, "0000")
        .cOption("AutosaveFormat") = 0      ' Format de sauvegarde (0 = PDF)
        'Mémorise l'imprimante par défaut et définis PDFCreator à la place
        DefaultPrinter = .cDefaultPrinter
        .cDefaultPrinter = "PDFCreator"
        .cClearCache
        'Imprime l'état
        objSheet.PrintOut Copies:=1, Collate:=True
        .cPrinterStop = False
      End With
      'Temporisation (max 10')
      c = 0
      Do While (pdfc.cOutputFilename = "") And c < 20
        c = c + 1
        Sleep 500
      Loop
      Fpdf = pdfc.cOutputFilename 'Nom complet du fichier PDF produit
      'Réinstalle l'imprimante d'origine
      With pdfc
        .cDefaultPrinter = DefaultPrinter
        Sleep 200
        .cClose
      End With
      Set pdfc = Nothing
      'Ouvre le pdf créé
      If Fpdf > " " Then
        ShellExecute 0&, vbNullString, Fpdf, vbNullString, vbNullString, vbNormalFocus
      Else
        MsgBox "Echec à la création du PDF.", vbInformation, ""
      End If
Mon impression se fait dans excel et nécessite pdfcreator sur le poste client.
Le résultat (une facture) se retrouve stocké sur le disque.

Pour l'envoi de mail je sèche grave
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 10h53   #6
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
Citation:
Envoyé par Tonioyo Voir le message
Bonjour,

Une imprimante s'installe en local et non sur un serveur. Il est vrai que la principale contrainte est l'installation obligatoire sur tous les postes clients qui utiliseront la base Access.

Cordialement,
Okay merci donc c'est mort pour pdf creator x) je vais allez voir ton lien mais n'étant que nouveau dans access je vais pas trouver mon bonheur ^^


Pour nico84 : tu arrives pas a faire une fonction pour envoyer un mail ?



EDIT : J'ai trouvé THE solution !!

http://officesystem.access.over-blog...-11323662.html

un .zip a télécharger 2 modules a exporter + 2 .dll a mettre dans le meme dossier que ta base .mdb et sa marche !
J'ai pas testé sur le serveur mais je penses qu'il y aura pas de problème ^^
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 14h55   #7
Membre Expert
 
Avatar de Renardo
 
Renald Chauvet
Inscription : avril 2006
Messages : 1 581
Détails du profil
Informations personnelles :
Nom : Renald Chauvet
Âge : 48

Informations forums :
Inscription : avril 2006
Messages : 1 581
Points : 1 750
Points : 1 750
Bonjour a tous
Pour mettre en pdf sans installer pdf creator ou autre regarde a cette adresse
http://www.lebans.com/reporttopdf.htm
Renardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 16h13   #8
Membre éprouvé
 
Avatar de Tonioyo
 
Anthony Schricke
Développeur informatique
Inscription : juin 2008
Messages : 342
Détails du profil
Informations personnelles :
Nom : Anthony Schricke
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2008
Messages : 342
Points : 455
Points : 455
Bonjour,

En ce qui concerne la fabrication de pdf avec pdfcreator j'ai écris mon propre module qui gère les impressions pdf.

@nico84 : Essaye de bien diviser ton code entre le démarrage de pdfcreator, l'envoie des données, l'attente de la fin d'impression et la fermeture/désallocation.

Il existe des problèmes à la fermeture de l'instance de pdfcreator et il est nécessaire de "killer" le processus entre deux impressions en tache de fond. La raison principale est que les créateurs de PDF créator n'autorise pas plus d'un(e) processus / instance en mémoire centrale. Du coup le temps que le processus se referme avec l'instruction Close, Access est déjà en train d'envoyer des données ou d'essayer de créer une nouvelle instance ce qui est interdit et produit une exception.

Il existe encore un autre problème qui à été reconnu aléatoire sur le site de PDFCreator. Parfois le document s'imprime en pdf en noir et blanc alors que le paramètre à été fixé sur couleur. Je ne suis pas sûr mais je crois qu'un ticket à été levé et serra peut être corrigé dans les versions ultérieures.
J'ai cherché la raison de ce "bug" et je n'ai pas trouvé.
Je n'ai pas encore eu le temps de jetter un oeil dans le code source qui est disponible sur ce même site.

Pour l'envoie de mail il faut utiliser le pilotage d'application. Par exemple pour Outlook il faut ajouter la référence qui correspond et ouvrir une instance (si elle n'est pas déjà présente en mémoire) et la piloter.
Il existe sûrement un tuto sur le pilotage des applications Office sur ce site.

Pour un autre logiciel de mail, il s'agit à peu près de la même technique en utilisant une librairie (une dll (Dynamic Link Library) par exemple)).
__________________
loi de LeBlanc : Plus tard signifie jamais. extrait de Coder proprement Auteur:Robert C. Martin
Tonioyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 02h18   #9
Candidat au titre de Membre du Club
 
Inscription : octobre 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 15
Points : 10
Points : 10
Bonsoir,

Tu peux installer pdf creator sur les postes qui utilisent la base, et lorsque tu veux exporter l'Etat, récupérer le nom de l'imprimante par défaut du poste concerné, le changer en PDF Creator, lancer l'export, puis rétablir l'imprimante par défaut.

Bonne soirée.
Jaako H. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h48   #10
Membre du Club
 
Développeur informatique
Inscription : décembre 2008
Messages : 43
Détails du profil
Informations personnelles :
Âge : 49

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2008
Messages : 43
Points : 46
Points : 46
Je pense que pdf ne marche pas avec Access2000.
NguyenRD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h50   #11
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
Citation:
Envoyé par Mycose Voir le message
EDIT : J'ai trouvé THE solution !!

http://officesystem.access.over-blog...-11323662.html

un .zip a télécharger 2 modules a exporter + 2 .dll a mettre dans le meme dossier que ta base .mdb et sa marche !
J'ai pas testé sur le serveur mais je penses qu'il y aura pas de problème ^^
Personne a lu mon EDIT

J'ai oublié de mettre résolu c'est pour ca
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h45.


 
 
 
 
Partenaires

Hébergement Web