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

Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -
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!
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
"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
Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   1 > yg_be Messages postés 23541 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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
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
Jennib370 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   1
 
Ça ne fonctionne pas, mais merci quand même :)
0