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

Jennib370 Messages postés 54 Statut Membre -  
Jennib370 Messages postés 54 Statut Membre -
Bonjour,
J'ai une table T_Personnel avec un champ "ID" et un champ "Votre nom" qui me sert pour sortir un état E_Certificat qui énumère 30 certificats (1 page par personne mais dans le même état), j'aimerais pouvoir les imprimer PDF mais séparément. Est-ce que c'est possible?
Merci!

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    cela me semble possible, peut-être en ouvrant l'état dans une boucle, chaque fois pour une seule personne ou un seul certificat.
    0
  2. Jennib370 Messages postés 54 Statut Membre 1
     
    Oui effectivement si je le fait 1 à la fois, ça fonctionne, mais je me demandais si c'était possible en une étape.
    Merci!
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      "une étape", moi je programmerais une boucle en VBA.
      je ne vois pas trop, autrement, comment imprimer chaque page séparément (vers un autre fichier PDF).
      0
      1. Jennib370 Messages postés 54 Statut Membre 1 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        J'ai trouvé ceci, mais comme je ne suis pas très bonne dans le VBA, la ligne 20-21-22 est en rouge donc il y a quelque chose qui ne fonctionne pas et je ne sais pas quoi...

        Sub CreerFichesInterlocuteurs()
            Dim strFichier As String
            Dim strFichierPDF As String
            Dim strEtat As String
            Dim strFiltre As String
            Dim rst As dao.Recordset
            
            ' Nom de l'état à imprimer
            strEtat = "E_Astuces Outlook"
            
            ' Nom de base du fichier PDF à créer
            strFichier = DossierSpecial(Bureau) & "TestInterlocuteur {0} - {1} {2}.pdf"
            
            ' Ouvrir la liste des personnes
            Set rst = CurrentDb.OpenRecordset("T_Astuces Outlook", dbOpenSnapshot)
            
            ' Parcourir toute la liste
            While Not rst.EOF
                ' Le nom du fichier varie en fonction de la personne
                strFichierPDF = StringFormat(strFichier, _
                    Format(rst("id"), "000"), _
                    rst ("Votre nom")
                    
                ' Construire le filtre
                strFiltre = "[ID] = " & rst("ID")
                    
                ' Imprimer l'état en le filtrant sur la personne concernée
                PrintAsPDF strFichierPDF, strEtat, strFiltre
                    
                ' Personne suivante
                rst.MoveNext
            Wend
            
            ' Terminé !
            rst.Close
            Set rst = Nothing
            MsgBox "Opération terminée !", vbInformation
        End Sub
        End Sub  
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Jennib370 Messages postés 54 Statut Membre
         
        de toute évidence, il manque une parenthèse.
        je ne connais pas stringformat, je suppose qu'il faut ajouter une parenthèse fermante en fin de ligne 22.
        sinon, peut-être:
        strFichierPDF = DossierSpecial(Bureau) & "TestInterlocuteur " _
            & Format(rst("id"), "000") & " - " & rst ("Votre nom") & ".pdf"
        0
  3. Jennib370 Messages postés 54 Statut Membre 1
     
    Ça ne fonctionne pas, mais merci quand même :)
    0