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

Signaler
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021
-
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021
-
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

Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
bonjour,
cela me semble possible, peut-être en ouvrant l'état dans une boucle, chaque fois pour une seule personne ou un seul certificat.
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021
1
Oui effectivement si je le fait 1 à la fois, ça fonctionne, mais je me demandais si c'était possible en une étape.
Merci!
Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
"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).
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021
1 >
Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

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  
Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 >
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021

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"
Messages postés
50
Date d'inscription
mardi 27 décembre 2011
Statut
Membre
Dernière intervention
6 juillet 2021
1
Ça ne fonctionne pas, mais merci quand même :)