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

Access Discussion :

Créer plusieurs PDF à partir d’un état Access


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Créer plusieurs PDF à partir d’un état Access
    Bonjour,
    Je dispose d’un état Access avec plusieurs pages et surtout plusieurs sociétés différentes généré sur la base d'une requête.
    Je voulais obtenir un document PDF par société sans avoir à passer par la manip imprimer en PDF pages 1 à 3, pages 4 à 5, pages 6 à 10 etc....
    Après des recherches sur le net j'ai réussi à obtenir une extraction automatique d'un document PDF par société mais un problème persiste.

    Je m'explique :
    EXEMPLE :
    SOCIETE1 = 10 lignes dans la requête. Alors mon code va permettre de créer une 1ère fois un document PDF appelé SOCIETE1 qui reprend toutes les informations sur cette société.
    Puis il passe à la ligne deux qui concerne également la SOCIETE1, il me créé alors le même document qui écrase le 1er et cela 10 fois.
    Le temps de création des fichiers et donc très long. Je souhaiterais, qu'une fois le PDF SOCIETE1 créé il passe direct à la SOCIETE2 sans lire toutes les lignes de la SOCIETE1.
    Si quelqu'un pouvez m'aider ce serait génial

    Ci-dessous mon code :

    Function MacroSociete()
    Dim strFichier As String
    Dim strFichierPDF As String
    Dim strFiltre As String
    Dim rst As dao.Recordset


    ' Nom de l'état à imprimer
    strEtat = "Etat societe"

    ' Nom de base du fichier PDF à créer
    strFichier = "C:\Users\Vasset_Eme\Desktop\NouveauDossier\" & "Liste {0}.pdf"


    ' Ouvrir la liste des sociétés
    Set rst = CurrentDb.OpenRecordset("Requête société 1", dbOpenSnapshot)

    ' Parcourir toute la liste
    While Not rst.EOF
    ' Le nom du fichier varie en fonction de la société
    strFichierPDF = StringFormat(strFichier, _
    Format(rst("Société"), ""), _
    rst("Type"))

    ' Construire le filtre
    strFiltre = "[Société] = '" & rst("Société") & "'"


    ' Imprimer l'état en le filtrant sur la société
    PrintAsPDF strFichierPDF, strEtat, strFiltre

    ' Société suivante
    rst.MoveNext

    Wend
    ' Terminé !
    rst.Close
    Set rst = Nothing
    MsgBox "Opération terminée !", vbInformation
    End Function

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 817
    Points : 14 911
    Points
    14 911
    Par défaut
    bonjour,
    que contient la requête [Requête société 1] ?
    A mon avis, il faut faire un regroupement pour n'avoir qu'une fois chaque société, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = CurrentDb.OpenRecordset("select DISTINCT Société, Type from [Requête société 1]", dbOpenSnapshot)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonjour,
    que contient la requête [Requête société 1] ?
    A mon avis, il faut faire un regroupement pour n'avoir qu'une fois chaque société, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = CurrentDb.OpenRecordset("select DISTINCT Société, Type from [Requête société 1]", dbOpenSnapshot)
    La requête contient pour chaque société les informations sur les produits la concernant (en détails)
    Dans mon exemple : SOCIETE1 = 10 produits détaillés (1 ligne = 9 champs)
    Je teste ça dès demain, merci pour le retour

  4. #4
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Emi1988 Voir le message
    La requête contient pour chaque société les informations sur les produits la concernant (en détails)
    Dans mon exemple : SOCIETE1 = 10 produits détaillés (1 ligne = 9 champs)
    Je teste ça dès demain, merci pour le retour
    Après essai, cela ne fonctionne pas.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 817
    Points : 14 911
    Points
    14 911
    Par défaut
    Bonjour,
    Citation Envoyé par Emi1988 Voir le message
    Après essai, cela ne fonctionne pas.
    mais encore ? je ne suis pas devant ton application ...
    Peux-tu poster le SQL de la requête ? Le but serait d'avoir qu'un seul enregistrement par société.

Discussions similaires

  1. [Imagick] Créer un pdf à partir de plusieurs images de dimensions différentes
    Par Garra dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 12/10/2011, 19h31
  2. macro pour créer plusieurs tcd à partir d'access
    Par 78580400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/05/2011, 10h13
  3. Créer un pdf à partir de delphi
    Par Petzouille57 dans le forum Delphi
    Réponses: 4
    Dernier message: 17/11/2006, 10h05
  4. Créer plusieurs colonnes à partir d’une seule
    Par jeje22 dans le forum Access
    Réponses: 5
    Dernier message: 12/09/2006, 16h31
  5. créer un pdf à partir d'un formulaire
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 04/05/2006, 22h38

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