Définir l'imprimante
Comment définir l'imprimante à utiliser
Avant d'imprimer certains états, on peut souhaiter utiliser une imprimante particulière. Comme par exemple une imprimante laser, imprimante jet d'encre couleur ou encore une imprimante PDF.
Le code ci-dessous permet cela et pour définit l'imprimante, on utilisera :
ChoixImprimante "Nom d'imprimante"
Ce nom d'imprimante sera celui qui est affiché par Windows via le menu Démarrer > Paramètres > Périphériques > Imprimantes et scanneurs.
Dans Access, on peut utiliser la fonction :
fnActualPrinter()
Code à placer dans le module général :
Option Compare Database Option Explicit '// déclarations Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" ( _ ByVal lpszSection As String, _ ByVal lpszKeyName As String, _ ByVal lpszString As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Const HWND_BROADCAST = &HFFFF& Private Const WM_WININICHANGE = &H1A Public Function SetDefaultPrinter(objPrn As Printer) As Boolean '// appel système pour définir l'imprimante Dim X As Long, sztemp As String sztemp = objPrn.DeviceName & "," & objPrn.DriverName & "," & objPrn.Port X = WriteProfileString("windows", "device", sztemp) X = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0&, "windows") End Function Public Function ChoixImprimante(NomImprimante As String) Dim prt As Printer Dim bOk As Boolean bOk = False For Each prt In Printers If prt.DeviceName = NomImprimante Then SetDefaultPrinter prt bOk = True DoEvents Exit For End If Next If Not bOk Then MsgBox "Nom d'imprimante pas trouvée !" End Function Public Function fnActualPrinter() As String '/ fonction qui retourne le nom de l'imprimante actuelle fnActualPrinter = Application.Printer.DeviceName End Function
Catégorie : Les mémos - Modules
Page lue 2173 fois