Common Dialog + ShowPrinter [Résolu]

zen69 588 Messages postés jeudi 28 décembre 2006Date d'inscription 29 avril 2010 Dernière intervention - 5 mai 2008 à 16:50 - Dernière réponse : pitch95 3 Messages postés vendredi 10 septembre 2004Date d'inscription 13 août 2008 Dernière intervention
- 13 août 2008 à 17:39
Bonjour a tous,


J'ai presentement un problem avec le common dialog showprinter. Voila
j'essaye de choisir l'imprimante sur laquelle je veux imprimer sans
toute fois modifier l'imprimante par defaut. J'ai donc setter la
propriété PrinterDefault = False. Cepandant je ne sais pas comment recupérer l'imprimante selectionnée dans le common dialog... Quelqu'un peut m'aider svp?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Afficher la suite 

4 réponses

Répondre au sujet
zen69 588 Messages postés jeudi 28 décembre 2006Date d'inscription 29 avril 2010 Dernière intervention - 6 mai 2008 à 18:11
+3
Utile
J'ai trouver:

.Flags = cdlPDReturnDC '&H100

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de zen69
zen69 588 Messages postés jeudi 28 décembre 2006Date d'inscription 29 avril 2010 Dernière intervention - 5 mai 2008 à 17:33
0
Utile
Voici ce que j'ai jusqu'a maintenant:

Private Sub cmdPrint_Click()
    Dim qty As Integer, i As Integer
    Dim pFont As String
    Dim pFontSize As Single
    Dim pLines() As String
       
    On Error GoTo Err_Handler
   
    With adoTransfer
        .CommandType = adCmdText
        .RecordSource = "SELECT RTRIM(ITEMNMBR) AS ITEMNMBR, SUM(TRXQTY) AS TRXQTY FROM [MS-SERVER].M0851.dbo.IV10001 WHERE IVDOCNBR='TR" & txtTrNb.Text & "' GROUP BY RTRIM(ITEMNMBR) ORDER BY RTRIM(ITEMNMBR)"
        .Refresh
        With .Recordset
            If .RecordCount = 0 Then
                MsgBox "Transfert vide ou inexistant."
                Exit Sub
            End If
            If Not .EOF And Not .BOF Then
                .MoveFirst
            Else
                MsgBox "Transfert vide ou inexistant."
                Exit Sub
            End If
        End With
    End With

    txtPrint.Text = m0851 & vbCrLf & "Date : " & Format(Now, "yyyy-mm-dd") & vbCrLf & lineSep & vbCrLf
    With adoTransfer.Recordset
        Do While Not .EOF And Not .BOF
            DoEvents
            txtPrint.Text = txtPrint.Text & .Fields("ITEMNMBR").Value & String$(2, vbTab) & .Fields("TRXQTY").Value & vbCrLf
            qty = qty + .Fields("TRXQTY").Value
            .MoveNext
        Loop
    End With
    txtPrint.Text = txtPrint.Text & vbCrLf & lineSep & "Total : " & qty & " item(s)."
   
    comDiag.Flags = &H80000 + &H8 + &H4 + &H100000
    comDiag.PrinterDefault = False
    comDiag.ShowPrinter
       
    pLines = Split(txtPrint.Text, vbCrLf)
       
    With Printer
        .TrackDefault = False
       
        pFont = .font
        pFontSize = .fontSize
        .font = "ms sans serif"
        .fontSize = 10
        For i = LBound(pLines) To UBound(pLines)
            Printer.Print pLines(i)
        Next i
        '.EndDoc
        .font = pFont
        .fontSize = pFontSize
    End With
   
    Exit Sub
Err_Handler:
    MsgBox Err.Description, vbExclamation, Err.Number
    Exit Sub
End Sub

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Commenter la réponse de zen69
zen69 588 Messages postés jeudi 28 décembre 2006Date d'inscription 29 avril 2010 Dernière intervention - 5 mai 2008 à 20:02
0
Utile
Un peu d'aide serait grandement apprécié

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Commenter la réponse de zen69
pitch95 3 Messages postés vendredi 10 septembre 2004Date d'inscription 13 août 2008 Dernière intervention - 13 août 2008 à 17:39
0
Utile
Salut je rencontre le même problème que toi sauf que si je reprend ton code je n'arrive pas a la faire fonctionner chez moi
exemple:

CommonDialog1.Flags = cdlPDReturnDC
CommonDialog1.PrinterDefault = False
CommonDialog1.ShowPrinter
Printer.TrackDefault = False
Printer.ScaleMode = vbMillimeters
Printer.CurrentX = 5
Printer.CurrentY = 5
Printer.FontSize = 12
Printer.FontBold = False
Printer.FontItalic = False
Printer.ForeColor = vbBlack
Printer.Print "Date Impression: " & Now & "     Chambre: " & Chambre
FormBase.MSChart1.EditCopy
Printer.PaintPicture Clipboard.GetData, Printer.CurrentX, Printer.CurrentY
Printer.EndDoc

Mais le document sort toujours sur l'imprimante par défaut et pas sur celle choisi avec CommonDialog1

Une piste?
Commenter la réponse de pitch95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.