Access - Selección de impresoras

 
Vista:
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Selección de impresoras

Publicado por Jesús Manuel (134 intervenciones) el 08/08/2014 09:20:01
Muy buenas:

Mediante un botón en un formulario abro un informe para imprimirlo y selecciono la impresora a color de entre las que tengo configuradas. El código que utilizo es:

DoCmd.OpenReport "CERTIFICADOS"
Reports("CERTIFICADOS").Printer = Printers("\\trss34_33\SERVICIO 1 - HP 4600n")

La base de datos esta compartida para varios usuarios y ha saltado un error al querer imprimir este informe. Por lo que he visto es porque no todos los usuarios tienen el mismo nombre para la impresora y en algunos casos el nombre sería solo HP 4600n y no Servicio 1 - HP 4600n

Quiero que esta sea la impresora por defecto para este informe, porque es necesario que se imprima a color y esta es la impresora a color de la oficina, ya que por defecto todos los ordenadores tienes una Lexmark T630 como impresora predeterminada.


La pregunta es: como obtener un listado de las impresoras del PC, para buscar cual contiene en su nombre la cadena HP 4600, obtener el nombre completo de esta impresora y utilizarlo en el código anterior?


PD.: Lo más rápido sería cambiar los nombres de las impresoras en los equipos y que todos tengan los mismos nombres, pero vamos a dejarlo en que no puedo hacer esto.
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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Selección de impresoras

Publicado por Jesús Manuel (134 intervenciones) el 08/08/2014 10:34:49
Tras unas cuantas búsquedas a mayores de lo que ya había buscado puedo auto-contestarme:

1
2
3
4
5
6
7
8
9
10
11
12
13
DoCmd.OpenReport "CERTIFICADOS"
 
Dim X As Printer
Dim NOMEPRINT As String
 
For Each X In Printers
	If X.DeviceName Like "*4600*" Then
		NOMEPRINT = X.DeviceName
	Exit For
	End If
Next
 
Reports("CERTIFICADOS").Printer = Printers(NOMEPRINT)

La información la he conseguido en http://msdn.microsoft.com/es-es/library/h510w79b(v=vs.90).aspx , luego he hecho algunos cambios en los ejemplos para mi caso concreto.

Comentar que todos los problemas que tenía con los códigos que había visto eran por la versión del VB, ya que estaba intentando usar PrinterSettings y no había forma.
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