Bonjour

Je viens d'étudier les possibilités d'imprimer un état grâce à un code VBA dans access et je me rends compte que visiblement on ne peut le faire qu'avec DoCmd.PrintOut après avoir ouvert l'état. Cependant j'aimerais pouvoir imprimer un état en spécifiant son nom sans l'ouvrir.
Voici plus de détails de la procédure impression_click :
lorsqu'on clique cela ouvre un par un les états voulus en suivant la procédure de Mout1234 (voir discussion "sélectionner les éléments d'une liste") qui permet de visualiser et donc de valider les fiches. Ensuite une fois qu'ils ont tous été validés j'aimerais que la procédure enchaîne sur l'impression de toutes les fiches (sachant qu'en rélité il y deux types d'état et que pour celui qui se réfère aux tronçons on peut avoir à en imprimer plusieurs avec des codes différents)
pour plus de clarté (car c'est p certainement un peu flou) voici le code de la procédure :
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Private Sub comImpress_Click()
 
Dim choix As String
Dim SQL As String
Dim SQLWhere As String
Dim Nrow As Long
Dim i As Long
 
On Error GoTo Err_comImpress_Click
 
    Dim stDocName As String
 
    stDocName = "staFicheZone"
    DoCmd.OpenReport stDocName, acPreview, , "[codage] =" & Me.codage
 
    DoCmd.Maximize
    Do
        DoEvents
    Loop While ap_IsLoaded(stDocName, acReport)
    DoCmd.Restore
 
    DoEvents
 
    SQL = "SELECT qryZone_Dossier.codage, qryZone_Dossier.Code_tronçon, qryZone_Dossier.Nom_tronçon FROM qryZone_Dossier WHERE qryZone_Dossier.codage = " & Me.codage
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"
 
    Me.lstTronçons2.RowSource = SQL
    Me.lstTronçons2.Requery
    Me.lstTronçons2.Visible = False
    Nrow = DCount("*", "qryZone_Dossier", SQLWhere)
 
    i = 0
    Do While i < Nrow
    Dim selection As String
    stDocName = "staFichetronçon"
    selection = Me.lstTronçons2.ItemData(i)
    DoCmd.OpenReport stDocName, acPreview, , "[Code_tronçon] = '" & selection & "'"
 
    DoCmd.Maximize
    Do
        DoEvents
    Loop While ap_IsLoaded(stDocName, acReport)
    DoCmd.Restore
 
    DoEvents
 
    i = i + 1
    Loop
 
Exit_comImpress_Click:
    Exit Sub
 
Err_comImpress_Click:
    MsgBox Err.Description
    Resume Exit_comImpress_Click
 
End Sub
Merci