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

IHM Discussion :

Exporter un état en PDF


Sujet :

IHM

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour forum,

    J'ai un état qui représente les ventes qui ont été faites par bureau de vente et par représentant. J'ai vu dans la FAQ Access le code qu'Argyronet a développé et ça marche très bien.
    http://access.developpez.com/sources...Etat#ExportPDF

    Ce que j'aimerais faire, c'est exporter plusieurs fichiers PDF à partir de mon état. J'aimerais que chaque bureau de ventes ait son fichier, alors qu'ils sont tous regroupés sur le même état, et je ne sais pas comment faire.

    Voici quelques informations qui peuvent vous être utiles pour m'aider:
    - Dans mon Entête de groupe "Bureau des ventes", j'ai la procédure événementielle "Au formattage" qui remet le numéro de page à 1. J'avais pensé peut-être utiliser ça pour faire mon code mais je ne sais pas comment.
    - J'ai une entête et un pied de groupe qui sont regroupés sur chaque valeur et la section insécable est "Groupe entier".

    J'ai pensé à plusieurs façons que je ne sais pas comment programmer mais ce sont peut-être des pistes...
    - Y aller par numéro de page
    - Lorsque j'ouvre l'état, je pourrais faire un procédure événementielle pour remplir une table qui donnerait la page de départ et la page de fin de chaque bureau des ventes et mon impression irait lire cette table.

    Bref, j'ai besoin de votre aide.

    Merci!

    Gringo59

    P.S. Je suis en Access 2000

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je vais te donner une idée (je n'ai jamais testé).

    1. Lorsque tu lances ton état (DoCmd.OpenForm...), il y a dans les paramètres des critères qui peuvent te permettre d'éditer l'Etat suivant tes bureau.
    2. Avec une boucle sur la liste de tes bureaux, tu édites tes états un par un et tu lances en même temps le code pour la génération des PDF.


    C'est juste une idée, car je ne l'ai jamais tenté.


    Starec

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour Starec,

    Mes paramètres font déjà en sorte que mon état est édité en fonction des bureaux de ventes. Ils sont déjà triés en ordre de numéro de bureau.
    De plus, je ne veux pas exporter mon état en pdf chaque fois que je l'ouvre. Ce ne serait que pour des cas particuliers (une fois par mois alors que l'état peut être consulté plusieurs fois par mois).

    Et comme j'ai appris en pratiquant et que je n'ai aucun cours ni aucune base solide autre que la pratique, je ne connais pas très bien tout ce que je peux faire en code et je ne connais pas très bien non plus les diverses propriétés des états. J'ai lu des tutos et dans la FAQ mais je n'arrive pas à trouver de solution à ce problème...

    Je continue tout de même à chercher!

    Merci!

    Gringo59

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour,

    J'ai avancé un peu dans mes recherches. J'ai ajouté au code d'Argyronet une contrainte pour l'ouverture de mon rapport dans laquelle je mets la date que je veux ainsi que le numéro du bureau des ventes. Je suis donc capable d'isoler les pages de mon rapport et de les faire imprimer distinctement.

    Mon nouveau problème est le suivant: quand je lance mon code, pour chaque nouvelle impression, il me demande la valeur de mon paramètre. Je vous mets le code ci-dessous et je vous explique:

    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
    Private Sub cmdRapports_Click()
    Dim SQL As String, SQLWhere As String, Nb As Integer, i As Integer, Contrainte As String
    Dim tbl As DAO.Recordset, Req As QueryDef, NomBV As String, Répertoire As String
     
    Set Req = CurrentDb.QueryDefs("ReqRétribCrBV")
    Set tbl = Req.OpenRecordset(dbOpenDynaset)
     
    Nb = tbl.RecordCount
    Répertoire = "path"
    tbl.MoveFirst
    For i = 1 To Nb
        NomBV = tbl![Nom bureau ventes]
        Contrainte = "[Date_Rétribution] = #" & Me.DateProd & "# And [Bureau_Vente] = " & tbl![Bureau_Vente]
        Call ImprimerPDF("RptCrSommaireBV", Répertoire & NomBV & " " & DateProd & ".pdf", Contrainte)
        tbl.MoveNext
    Next i
     
    End Sub
    Et voici la fonction ImprimerPDF
    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
    Private Sub subCreatePDFFromReport(ByVal ReportName As String, _
      ByVal PDFFileName As String, ByVal Constraint As String)
      originalPrinter = fnctGetDefaultPrinter()
      SetDefaultPrinter "Acrobat PDFWriter"
      subRegistrySetKeyValue rootHKeyCurrentUser, _
       "Software\Adobe\Acrobat PDFWriter\", "PDFFileName", _
         PDFFileName, RRKREGSZ
     
      DoCmd.OpenReport ReportName, 0, , Constraint
      SetDefaultPrinter originalPrinter
    End Sub
     
    Public Sub ImprimerPDF(NomÉtat As String, Fichier As String, Constraint As String)
        subCreatePDFFromReport NomÉtat, Fichier, Constraint
    End Sub
    Mon problème, c'est que chaque fois qu'il passe sur le doCmd.OpenReport, on dirait qu'il ne reconnait pas bien ma contrainte. Mes bureaux de vente sont codés de façon alphanumérique (A11 par exemple) et il me demande toujours "Entrer la valeur du paramètre A11". Je ne comprends pas quel est le problème...

    J'ai besoin de votre aide.

    Merci et bonne journée!

    Gringo59

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Quelqu'un a une idée?

    Gringo59

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Merci quand même!

    Gringo59

  7. #7
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Par défaut Propositions
    Bonjour,

    Ce que j'aimerais faire, c'est exporter plusieurs fichiers PDF à partir de mon état. J'aimerais que chaque bureau de ventes ait son fichier, alors qu'ils sont tous regroupés sur le même état, et je ne sais pas comment faire.

    Sachant qu'un état est basé sur une seule requête.
    Alors il y a plusieurs solutions
    Solution 1
    Une interface sur laquelle on sélectionne des critères puis on édite en fonction de ces derniers.
    Chaque état est imprimé individuellement

    Solution 2
    On ne veut pas d’interface

    Une boucle vba qui va déterminer la clause à passer à l’état, tous les états seront imprimés les un derrière les autres mais séparement.

    Solution 3
    Une boucle de construction de requetes sql passées à une variable (marequete)
    Docmd.openreport ….
    On positionne le recordsource de l’état au formatage de ce dernier me.recordsource = marequete.

    Info j’ai du code pour numéroter les bas de pages par section de page cette numérotation sera déterminée par un champ,
    Ex : pour un état de 7 pages critère de tri Ville
    Marseille page 1 sur 4
    Paris page 1 sur 3

    je ne sais pas si j'ai compris ton problème
    a+

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    bonjour,
    j'ai réussi à faire quelque chose de semblable avec ce tutorial:
    http://cafeine.developpez.com/access/tutoriel/pdf/

    très bien fait. j'ai divisé à l'extrème, 1 fichier pdf par page généré automatiquement, avec un nom de fichier générique "commande_[numero].pdf" pour ne pas avoir les boites de dialogue à chaque fichier.

    Pour la question du paramètre A11, je pense qu'il faut voir dans la requête du formulaire ou de l'état pour identifier le problème.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour,

    Merci pour vos réponses naphta et pifou25. Pour répondre à naphta, j'ai utilisé ta solution 3. Ça marche en partie. Le problème est qu'il y a un message qui me demande la valeur d'un paramètre que j'ai mis dans la contrainte de mon DoCmd.OpenReport dans le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Contrainte = "[Date_Rétribution] = #" & Me.DateProd & "# And [Bureau_Vente] = " & tbl![Bureau_Vente]
        Call ImprimerPDF("RptCrSommaireBV", Répertoire & NomBV & " " & DateProd & ".pdf", Contrainte)
     
    DoCmd.OpenReport ReportName, 0, , Contrainte
    Je me suis fait une requête qui me donne tous les bureaux de ventes pour lesquels des ventes ont été enregistrées dans le mois. Je vais lire cette requête et je l'inclus dans ma contrainte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Bureau_Vente] = " & tbl![Bureau_Vente]
    Ce qui est bizarre, c'est qu'il me demande:"Entrer la valeur du paramètre A11".
    J'entre A11 et ça marche! Je trouve ça vraiment bizarre. Et je ne sais pas comment l'automatiser.

    pifou25, je vais regarder le tutoriel, je ne l'ai pas encore fait. Je vais voir ce que je peux en tirer, mais comme je suis très avancé dans mon application, je ne voudrais pas tout recommencer. Je vais voir si je ne peux pas prendre une partie de ce tutoriel qui pourrait automatiser mon appli.
    Je te reviens là-dessus!

    Merci à vous deux!

    Bonne soirée!

    Gringo59

  10. #10
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Par défaut Etat
    Bonjour El Gringo,

    La méthode N° 3 ne doit pas te demander quoi que ce soit puisque l'état à tout ce qui lui faut :

    Le recordsource de l'état est dans une variable Public.

    On passe à la variable public le recordsource de l'état, si l'état de demande quelque chose c'est qu'il manque un champ dans la requête passée à la variable.

    J'utilise très souvent cette méthode, parfois sur certains états l'utilisateur peut choisir jusqu'à 10 critères de sélection pour un état donné. Le titre de l'état est même passé en variable public à l'état.


    A+

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour à tous,

    Je suis d'accord avec toi naphta pour la solution #3. Le problème est que je ne sais pas comment faire en sorte que ça ne se produise pas. J'ai essayé plusieurs méthodes, j'ai changé ma requête source, j'ai testé en changeant le format du champ auquel je me référais mais ca ne marche pas.

    Je vous joins un fichier dans lequel mon problème se présente. Voici quelques explications:
    Le formulaire frmRétrib s'ouvre automatiquement lorsqu'on ouvre la BD. La procédure que je tâche de réaliser est celle qui se déclenche en appuyant sur le bouton Format pdf.
    Le code va chercher les résultats de la requête RqtCrRétribparMC et utilise ces résultats comme contrainte dans le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      DoCmd.OpenReport ReportName, 0, , Constraint
    Ensuite, il imprime le rapport en pdf (vous aurez besoin de Acrobat PDFWriter pour tester mon code). Il vous faudra changer la variable "Répertoire" qui indique où aller enregistrer les fichiers pdf.

    Je vous remercie de l'aide que vous m'avez déjà apportée et pour toute celle que vous pouvez encore m'apporter.

    Bonne journée!

    Gringo59

  12. #12
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Par défaut La suite et demande d'infos
    Bonjour,

    Bon, j'ai chargé le Zip et tenté de faire un aperçu cela suffit?

    Il y a un souci sur un champ qui prend 2 caractères à droite et le concatène avec un autre champ, quand on le vire de la requête tout baigne, l'aperçu est bon du moins de mon point de vue, car il demande rien.

    As-tu des souci avec un simple aperçu ou bien est-ce quand tu lances la fabrication des PDF ?

    quelle est ta version d'access ?
    A+

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Salut naphta,

    Je n'ai pas de problème avec l'aperçu, mais vraiment juste quand je lance la fabrication de mes pdf.

    Ma version est ACCESS 2000.

    Je crois que j'ai trouvé la source de mon problème, mais je ne suis pas pour autant capable de le régler. Voici ce dont je me suis rendu compte:
    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
    Private Sub cmdRapports_Click()
    Dim Nb As Integer, i As Integer, Contrainte As String
    Dim tbl As DAO.Recordset, Req As QueryDef, NomMC As String, Répertoire As String
     
    Set Req = CurrentDb.QueryDefs("ReqRétribCrListeMC")
    Set tbl = Req.OpenRecordset(dbOpenDynaset)
    'Set tbl = CurrentDb.OpenRecordset("Maison_Courtage", dbOpenDynaset)
     
    Nb = tbl.RecordCount
    Répertoire = "C:\Documents and Settings\FINRAR\Mes documents\Projets\Impartition IA\Rétributions\"
    tbl.MoveFirst
    For i = 1 To Nb
        NomMC = tbl![Nom société mutuelle]
        Contrainte = "[Code_Maison_Courtage] = " & tbl![Code_Maison_Courtage] & " And [Date_Rétribution] = #" & Me.DateProd & "#"
        Call ImprimerPDF("RptCrRétribparMC", Répertoire & NomMC & " " & DateProd & ".pdf", Contrainte)
        tbl.MoveNext
    Next i
     
    tbl.Close
    Set tbl = Nothing
    End Sub
    Ma variable "Contrainte" est un String. Le "Code_Maison_Courtage" est aussi un String. Quand je fais le pas à pas dans VBA, je me rends compte que la variable Contrainte inscrit:
    "[Code_Maison_Courtage] = P10 And [Date_Rétribution] = #2007-12-31#"
    Si j'inscris la condition dans les propriétés de l'état, je devrais inscrire:
    [Code_Maison_Courtage] = "P10" And [Date_Rétribution] = #2007-12-31#"
    Il me manque les parenthèses au Code_Maison_Courtage... J'ai essayé avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CStr(tbl![Code_Maison_Courtage])
    mais ça ne marche pas non plus.

    Experts Access, j'ai besoin de vous. Y a-t-il moyen de contourner ce problème?

    Merci de votre aide!

    Gringo59

  14. #14
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Par défaut Etat Pdf
    Bonjour,
    ça avance ...
    ton code
    [Code_Maison_Courtage] = "P10" And [Date_Rétribution] = #2007-12-31#"

    Plusieurs solution P10 est une valeur donc dans une variable
    la date aussi
    Dim madate
    Dim mavaleur
    mavaleur = "P10" ' ici on passe le paramètre correspondant à maison de courtage
    madate = "#2007-12-31#" ' ici on passe la date désirée
    ' puis on construit la contrainte
    macontrainte = "[Code_Maison_Courtage] = " & mavaleur & " And [Date_Rétribution] = " & madate

    Attention aux dates en France on comprend Jour mois année mais pour sql c'est mois jour année

    si des contributeurs ont des remarques à ajouter ..
    A+

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour naphta, le forum,

    J'ai essayé ton code mais ça ne marche pas. Je ne suis pas capable de mettre les parenthèses à P10 dans ma variable Contrainte.

    Même en utilisant ton code, quand je fais le pas à pas, la valeur que me donne ma variable Contrainte est la suivante:

    Contrainte="[Code_Maison_Courtage] = P10 & ..."

    Est-il possible d'avoir une variable String dont la valeur contient des parenthèses pour faire en sorte que j'obtienne:

    Contrainte="[Code_Maison_Courtage] = "P10" & ..."???

    Merci de votre aide.

    Gringo59

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Par défaut Exporter un état en PDF
    Bonjour,

    J'ai trouvé la réponse à ma question. J'ai posté un message dans le forum VBA Access et jpcheck a trouvé la réponse pour moi.

    Voici le lien si ça vous intéresse!

    http://www.developpez.net/forums/sho...d.php?t=482096

    Bonne fin de journée!

    Gringo59

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

Discussions similaires

  1. [AC-2013] Menu contextuel Exporter un état en pdf/xps en définissant le nom
    Par Filou07 dans le forum VBA Access
    Réponses: 0
    Dernier message: 18/06/2015, 10h22
  2. [AC-2010] Exporter un état sous pdf en mode paysage
    Par kawaya dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/08/2013, 11h00
  3. Exportation d'un état en PDF
    Par pasuperbon dans le forum Access
    Réponses: 13
    Dernier message: 11/01/2007, 18h08
  4. Export d'état Access sous forme de PDF
    Par rapace dans le forum Access
    Réponses: 13
    Dernier message: 31/08/2006, 10h07
  5. Exporter un État en pdf ?
    Par gaupiche dans le forum IHM
    Réponses: 2
    Dernier message: 22/05/2006, 17h11

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