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

Access Discussion :

Impression d'un état d'une base distant sur une imprimante spécifique [AC-2007]


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 146
    Points : 106
    Points
    106
    Par défaut Impression d'un état d'une base distant sur une imprimante spécifique
    Bonjour,

    J'ai deux base de données : la première s'est mon application et la seconde est une base de données distante disponible pour plusieurs utilisateurs contenant que des états.

    A partir de mon application, j'ouvre la base distante pour imprimer un état sur l'imprimante que j'ai préalable paramétrer dans l'application et dans le regedit.

    L'ouverture de la base distante fonctionne bien, je récupère bien les informations pour imprimer l'état mais malgré cela l'état s'imprime sur l'imprimante par défaut au lieu de celle que je viens de lui spécifier.

    Auriez-vous une idée pour que j'imprime sur l'imprimante spécifier

    Voici le code qui se trouve dans l'état:

    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
     
    If IsMissing(intView) Then intView = acViewNormal
     
    Set WshSell = CreateObject("WScript.Shell")
     
    If Me.OpenArgs <> "" Then
        strImprimante = Nz(Me.OpenArgs, "")
    Else
        strImprimante = WshSell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ApplisAccess\Facture\PrinterDeviceName")
    End If
     
     
    Set objAccess = New Access.Application
    With objAccess
        If strImprimante <> "" Then
                numIMP = 0
                NombreIMP = Application.Printers.Count
                'Balayage du numéro d'imprimante
                For Each impCherche In Application.Printers
                    If impCherche.DeviceName = strImprimante Then
                        Set Application.Printer = Application.Printers(numIMP)
                        Exit For
                    End If
                   numIMP = numIMP + 1
                Next impCherche
     
                'impression simple (recto)
                With Me.Printer
                    .Duplex = acPRDPSimplex
                End With
        End If
    End With

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 146
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    J'ai résolu mon problème avec ce 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
     
    Private Sub cmdPrint_Click()
     
    ' Vérifier si l'état est ouvert.
    If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
        ' S'il est ouvert, imprimer l'état.
        DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
    Else
     
        ' Donner à l'imprimante de l'application les paramètres utilisateur.
        Application.Printer = Application.Printers(Me!cmbPrinter.Value)
     
        ' Ouvrir et imprimer l'état avec les nouveaux paramètres d'imprimante au niveau application.
        DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
     
        ' Réinitialiser l'imprimante de l'application par défaut.
        Set Application.Printer = Nothing
    End If
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    ' Variable qui contient l'index de l'imprimante par défaut.
    Dim strDefaultPrinter As String
     
    ' Variable qui contient l'objet imprimante.
    Dim prt As Printer
     
    ' Variable qui contient l'objet Report pendant l'analyse
    ' de la collection AllReports.
    Dim accObj As AccessObject
     
    ' Remplir la liste des imprimantes.
    ' Vérifier que RowSource est vide.
    Me!cmbPrinter.RowSource = ""
    Me!lbxSelectReport.RowSource = ""
     
    ' Parcourir les imprimantes installées sur les ordinateur et les ajouter à la zone de liste modifiable.
    For Each prt In Application.Printers
    ' Utiliser la méthode AddItem pour ajouter le nom de l'imprimante à la zone de liste modifiable.
    Me!cmbPrinter.AddItem Item:=prt.DeviceName
    Next
     
    ' Mémoriser l'imprimante par défaut.
    strDefaultPrinter = Application.Printer.DeviceName
     
    ' Mettre la zone de liste modifiable sur l'imprimante par défaut.
    Me!cmbPrinter = strDefaultPrinter
     
    ' Remplir la liste des états.
    For Each accObj In CurrentProject.AllReports
    Me!lbxSelectReport.AddItem Item:=accObj.Name
     
    Next
     
    ' Mettre la zone de liste modifiable sur le premier état.
    Me!lbxSelectReport.SetFocus
    Me!lbxSelectReport.ListIndex = 0
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/12/2009, 10h51
  2. Réponses: 0
    Dernier message: 16/12/2009, 15h16
  3. [MySQL] Synchroniser une base locale et une base distante
    Par BenoitDenis dans le forum PHP & Base de données
    Réponses: 77
    Dernier message: 07/04/2006, 14h24
  4. Réponses: 17
    Dernier message: 13/02/2006, 14h43
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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