Access - Seleccionar Impresora

 
Vista:
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Seleccionar Impresora

Publicado por Osen (72 intervenciones) el 31/03/2018 23:17:01
Amigos de Access
Una generosa ayuda por favor.

Tengo 2 Impresoras instaladas en mi computador

Samsung M2070W y una Epson XP-201 (Predeterminada).

El caso es que hice otro botón para que imprima con la M2070W. Pero no sé cómo adaptar el código de la predeterminada para que apunte a la M2070W.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub BtnImprimirSamsung_Click()
On Error GoTo Err_BtnImprimirSamsung_Click
 
    Dim stDocName As String
    Dim criterio As String
    criterio = "NumeroEstadoCuenta= " & Me.NumeroEstadoCuenta
    stDocName = "Estado de Cuenta"
    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.OpenReport stDocName, acNormal, , criterio
 
Exit_BtnImprimirSamsung_Click:
    Exit Sub
 
Err_BtnImprimirSamsung_Click:
    MsgBox Err.Description
    Resume Exit_BtnImprimirSamsung_Click
 
End Sub

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Seleccionar Impresora

Publicado por Norberto (753 intervenciones) el 10/04/2018 12:00:56
Hola.

Crea un módulo e introduces el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Sub CambiarImpresora(NombreImpresora As String)
    Dim Prt As Printer
 
    For Each Prt In Application.Printers            'Recorremos todas las impresoras.
        If Prt.DeviceName = NombreImpresora Then    'Si el nombre coincide con el que le hemos indicado
            Application.Printer = Prt               'la cambiamos
            Exit For                                'y salimos del bucle.
        End If
    Next
 
    If Application.Printer.DeviceName <> NombreImpresora Then                   'Si no se ha efectuado el cambio
        MsgBox "Impresora " & NombreImpresora & " no encontrada.", vbCritical   'Generamos un mensaje
    End If
 
    Set Prt = Nothing
End Sub

Luego sólo tienes que llamarlo antes de abrir el informe tal que así:

1
CambiarImpresora "Samsung M2070W"

entre las líneas 8 y 9. Si quieres restaurar la que estaba por defecto añades:

1
Dim OldPrinter As String
en la zona de definiciones y
1
OldPrinter = Application.Printer.DeviceName
antes llamar al procedimiento para cambiarla.

Luego la restauras con
1
CambiarImpresora OldPrinter
después de imprimir el informe.

También puedes cambiar el procedimiento por una función que te devuelva Verdadero o Falso según se haya realizado correctamente el cambio e imprimir o no en función de ello.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar