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 |
Partager