IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[02] Savoir si l'imprimante par défaut va imprimer en mode recto ou recto/verso ?


Sujet :

VBA Access

  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut [02] Savoir si l'imprimante par défaut va imprimer en mode recto ou recto/verso ?
    Bonjour à tous et merci de votre temps et aide.

    Je travaille en Access XP (2002).

    J'ai une imprimante qui peut offrir le mode 'Recto Simple' (impression sur un seul côté de la feuille) ou 'Recto/Verso' (impression sur les deux côtés de la feuille).

    J'aimerai tester si l'impression se fera en mode Recto ou Recto/Verso.

    J'ai regardé l'objet Printer mais le problème c'est que dans la configuration 'Imprimante par défaut' associé à mon rapport, printer.duplex renvoie 'Recto simple' alors que mon imprimante imprime par défaut en mode Recto/Verso.

    Si je spécifie l'imprimante alors là je sais si je vais imprimer en Recto ou Recto/Verso mais le problème c'est que je déploie dans des lieux où les imprimantes varies donc j'aimerai vraiment garder la configuration par défaut.

    J'ai aussi regardé l'API Windows et les objets prtDevMode, prtDevNames et DevicesCapabilities mais apparement je peux seulement savoir si l'imprimante offre le mode Recto/Verso (Duplex) mais pas si elle va actuellement imprimer en mode Recto ou Recto/Verso.

    Quelqu'un a-t'il déjà fait cela, savoir si l'imprimante par défaut va imprimer en mode recto ou rceto/verso ?

    A+

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut de mémoire
    Bonjour,
    Oui avec les API on peut tout faire mais c'est un dev. long live, des tartines de code et en plus pas certain du portage sur d'autre bécannes.
    Le mieux pour moi bien entendu
    c'est d'installer sur chaque poste 2 pilotes, si c'est dans un réseau Windows avec serveur sert toi des queues.
    Si tu as peur de perdre les imprimantes fais un script de connexion pour tous les utilisateurs qui force l'installation des 2 queues.
    Ensuite si tes états nécessites l'une ou l'autre imprimante un script vba, de toute façon faut jamais imprimer en direct avec docmd.openreport blablabla.
    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
    Sub VaziImprimeLe(lekel As String, leouerre)
     
    ' Force l'impression sur une imprimante connue 1 ex. 
    ' lekel nom de l'état
    ' leouerre Clause Where
     
    Dim NumIMP As Integer
    Dim NombreImp As Integer
    Dim ImpCherche
    Dim cpt As Integer
     
    NumIMP = 0
    NombreImp = Application.Printers.Count
    For Each ImpCherche In Application.Printers
        If ImpCherche.DeviceName = "TonImprimante" Then
            Set Application.Printer = Application.Printers(NumIMP)
            Exit For
            Else
            NumIMP = NumIMP + 1
        End If
    Next ImpCherche
     
    If NumIMP = NombreImp Then
        MsgBox "Vous n'avez pas d'imprimante TonImprimante!!", vbCritical, "Impossible !"
        Exit Sub
    End If
     
    If leouerre <> "Aucune" Then
        DoCmd.OpenReport lekel, acViewPreview, , leouerre ' ICI Etat avec Clause Where
        Else
        DoCmd.OpenReport lekel, acViewPreview
    End If
     
    DoCmd.PrintOut acPrintAll, , , 1
    DoCmd.Close acReport, lekel
    Set Application.Printer = Nothing
     
    End Sub
    Bon cette fois j'espère que j'ai mis les bonnes balises pour le code !
    Voila ici du code pour forcer l'impression d'un état sur une imprimante connue
    a+

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Merci pour ton aide mais mon but est justement de ne pas avoir à forcer l'installation d'un type d'imprimante mais d'utiliser l'imprimante de l'utilisateur, quel que soit son modèle (ce sont toutes des imprimantes classiques de bureau).

    Si j'imprime en Recto/Verso j'ajoute une page blanche pour le dos de la 1ère page donc j'ai besoin de savoir si l'imprimante va imprimer en Recto/Verso ou pas.

    A+

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut Ok
    Bonsoir Marot,
    Voila 2 liens pour t'aider l'père

    http://pubs.logicalexpressions.com/P...cle.asp?ID=116
    ici on peut savoir si l'imprimante est duplex en anglais pour le recto/verso

    ou là j'ai testé ça marche avec access très bien attention code pour vb6
    http://support.microsoft.com/?scid=k...94789&x=4&y=12

    A+

  5. #5
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut Petite boulette
    Bonsoir,

    Je crains la boulette dans le petit bout de code laissé, en effet dans le test
    If NumIMP = NombreImp Then
    faut tester en détail car si c'est la dernière imprimante installée que l'on veut
    bon je reviens vers vous dès la fin du test

    Désolé

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/05/2006, 09h22
  2. [VB.NET] Connaître l'imprimante par défaut
    Par botanique dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/02/2006, 13h14
  3. [printDialog] Imprimante par défaut
    Par Antunes dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 06/01/2005, 11h51
  4. Réponses: 8
    Dernier message: 06/12/2004, 12h24
  5. Impression PDF et imprimante par défaut
    Par bobbafet dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/11/2004, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo