IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Etat en pdf ? [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre confirmé Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Points : 518
    Points
    518
    Par défaut
    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

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    Par défaut
    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

  4. #4
    Membre confirmé Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Points : 518
    Points
    518
    Par défaut
    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

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    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é d'un code trouvé sur un autre site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    Par défaut
    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 ^^

  7. #7
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour a tous
    Pour mettre en pdf sans installer pdf creator ou autre regarde a cette adresse
    http://www.lebans.com/reporttopdf.htm

  8. #8
    Membre confirmé Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Points : 518
    Points
    518
    Par défaut
    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

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    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.

  10. #10
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 51
    Points
    51
    Par défaut
    Je pense que pdf ne marche pas avec Access2000.

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Etat en PDF
    Par delcroixf dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/04/2007, 10h56
  2. Etats en PDF
    Par Jah78 dans le forum IHM
    Réponses: 5
    Dernier message: 12/12/2006, 14h01
  3. [VBA] Convertir un état en PDF et l'envoyer par mail
    Par snoopy69 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2006, 10h56
  4. enregistrer etat en pdf et l'envoyer par mail
    Par remi59 dans le forum IHM
    Réponses: 2
    Dernier message: 15/09/2006, 16h57
  5. Etats > fichier PDF > mail
    Par norvel dans le forum IHM
    Réponses: 8
    Dernier message: 18/04/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo