Bonjour,

J'aimerai tout simplement permettre à l'utilisateur de choisir l'imprimante de qu'il peut utiliser pami une liste et ensuite envoyer l'état.

J'ai essaye un code que j'ai trouvé ici qui modifie l'imprimante par défaut, mais malheureusement, l'impression est tjs envoyé sur la meme imprimante, voici le code:

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
Function fMultiImpression(stNomFichier As String, itCopies As Long, IDdesign As Long)
 
' Impression d'états sur une ou plusieurs imprimantes
' Pré-requis : L'état doit être en imprimante par défaut
' Paramètre  : nom de l'état
 
On Error GoTo GestErr
 
If stNomFichier = "" Then Exit Function
 
Dim rs As Recordset
Dim dr As aht_tagDeviceRec
Dim stDvDefault As String   ' Unité de l'imprimante par défaut
Dim stDrDefault As String   ' Driver de l'imprimante par défaut
Dim stPrDefault As String   ' Port de l'imprimante par défaut
Dim req As String
 
    'Stockage des paramètres de l'imprimante par défaut actuel
    If ahtGetDefaultPrinter(dr) Then
       stDvDefault = dr.drDeviceName
       stDrDefault = dr.drDriverName
       stPrDefault = dr.drPort
    End If
 
req = "SELECT [T-PrtList].Idprinter, [T-PrtList].no_prt, [T-PrtList].Tx_Prtnom, [T-PrtList].tx_Prtport, [T-PrtList].tx_prtdriver, [T-PrtList].st_Selection"
req = req + " FROM [T-PrtList]"
req = req + " WHERE ((([T-PrtList].Idprinter)=" & [Forms]![F-Choix du fichier]![LstImp] & ") AND (([T-PrtList].st_Selection)=-1));"
 
   'MsgBox "" & [Forms]![F-Choix du fichier]![LstImp]
 
'Set rs = CurrentDb().OpenRecordset("SELECT * FROM [T-PrtList] WHERE st_selection = true;")
 Set rs = CurrentDb().OpenRecordset(req)
    If Not rs.EOF And Not rs.BOF Then
     '  MsgBox "" & rs!tx_prtnom
      ' MsgBox "" & rs.RecordCount
        While Not rs.EOF
            ' Chargement des paramètres de l'imprimante sélectionnée
            dr.drDeviceName = rs.Fields("[tx_PrtNom]")
            dr.drDriverName = rs.Fields("[tx_PrtDriver]")
            dr.drPort = rs.Fields("[tx_PrtPort]")
            ' L'imprimante devient imprimante par défaut
            ahtSetDefaultPrinter dr
 
            MsgBox "Veuillez confirmer l'impression sur l'imprimante:" & dr.drDeviceName
 
            ' Impression
            DoCmd.OpenReport stNomFichier, acViewPreview, , "([T-Design].N°)=" & IDdesign & ""
            DoCmd.PrintOut acPages, , , , itCopies
 
            ' Fermeture fichier
            DoCmd.Close acReport, stNomFichier
 
            rs.MoveNext
        Wend
 
    End If
 
RestoreDftPrt:
 
    ' fermeture des objets
    rs.Close
     Set rs = Nothing
 
    ' Restauration de l'imprimante par défaut
    'MsgBox "" & stDvDefault
    dr.drDeviceName = stDvDefault
    dr.drDriverName = stDrDefault
    dr.drPort = stPrDefault
    ahtSetDefaultPrinter dr
 
Exit Function
 
' Gestion des erreurs
GestErr:
 
    MsgBox "Erreur dans fMultiImpression : " & Error & " (" & Err & ")"
Resume RestoreDftPrt
 
End Function
Je ne comprend pas ce qui cloche. Merci d'avance pour votre aide.