En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des contenus et services adaptés. Mentions légales.

Recherche

Recherche

Les mémos

Je débute...

Visites

 1238008 visiteurs

 31 visiteurs en ligne

Nous contacter

Contact

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 2069 fois

Vous êtes ici :   Accueil » Définir l'imprimante