Bonjour,
Je dispose d'un état possédant un niveau de regroupement que nous appellerons ID.
Mon but est d'imprimer tout cet état, mais séparément (séparé par cet ID, donc.) Bon, c'est pas très clair, mais ça, j'y arrive au moyen de ce bout de code:
Pour imprimer papier, pas de problème. Pour imprimer en PDF un état après l'autre (directement via PrintReportByGroup()), pas de problème non plus.
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 Option Compare Database Private Function PrintReportByGroup(ID As String) 'On ouvre l'état en mode impression directe sur l'imprimante par défaut (PDFCreator), 'Clause WHERE :[MonEtat]![ID]=ID DoCmd.OpenReport "MonEtat", acViewNormal, , "[MonEtat]![ID]=" & Chr(34) & ID & Chr(34) Function toPrint() Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("SELECT ID FROM MATABLE") ' Parcours du champ ID de la table. Pour chaque ID, on imprime l'état correspondant. With rs While Not .EOF PrintReportByGroup (.Fields(0).Value) '(Puisque le recordset n'a qu'un seul champ) Wend End With End Function End Function
Le souci, c'est quand je veux tous les imprimer d'un coup (soit environ 150 -un peu fastidieux à la main). La boucle est fonctionnelle, mais ils sont tous imprimés les uns après les autres avec le nom "MonEtat". D'où un écrasement en chaîne, au final je me retrouve avec un seul fichier PDF "MonEtat.pdf" qui ne contient que le dernier état imprimé.
Je cherche donc un moyen de différencier chacun des état pour qu'ils soient de la forme "MonEtat" & ID &".pdf", afin d'éviter cet écrasement.
Auriez-vous une solution?
Merci par avance,
Zod
PS: j'utilise PDFCreator, et non PdfWriter, comme spécifié dans la source "Exporter en PDF".
Partager