La Web del Programador: Comunidad de Programadores
 
    Pregunta:  45603 - NUMERO DE IMPRESIONES CON COMMONDIALOG
Autor:  Leandro Carames
Cuando utilido el CommonDialog para imprimir y utilizo el numero de copias del controlador, este siempre imprime una copia sola, alguien sabe porque???
ya probe ponerle esta opcion : CommonDialog.Flags=cdlPDUseDevModeCopies y tampoco, si alguien me ayuda, les estare muy agradecido!!

  Respuesta:  Miguel A. Birruete
Para empezar el otro comentario tiene razon la propiedad .COPIES al parecer es inutil, pero encontre un modo de emplearla y se hace de esta forma:

Private Sub Command1_Click()

Cd1.CancelError = True
On Error GoTo Cancelar:

Cd1.flags = cdlPDUseDevModeCopies
Cd1.ShowPrinter

For Copias = 1 To Cd1.Copies
Frm_Registro.PrintForm
Next Copias

Printer.EndDoc

Cancelar:
Exit Sub

End Sub

asi estableces el numero de copias y si te lo devuelve el .COPIES y ya puedes imprimir varias.

espero les sea de utilidad, y si encuentran algo mejor comenten ya que de este tema casi no hay nada en loa red y es de mucha utilidad.

  Respuesta:  Carlos G
El control CommonDialog es solamente una interfaz que permite al usuario configurar ciertos parmetros de forma mas facil, pero no realiza ninguna acción por si solo, de modo que al poner un valor distinto de 1 en numero de copias la impresora seleccionada no se enterará del cambio y solamente imprimirá una copia (o la cantidad que tenga configurada por defecto).
Para solucionar esto el programa debe tomar el valor de la cantidad de copias establecidas y enviar a la impresora los datos a imprimir tantas veces como sea necesario hasta completar la cantidad requerida.