Cómo automatizar el proceso de selección de la impresora para un informe en Microsoft Access

Seleccione idioma Seleccione idioma
Id. de artículo: 319317 - Ver los productos a los que se aplica este artículo
Principiante: se requieren conocimientos de la interfaz de usuario en equipos de usuario único.

Este artículo se refiere a un archivo de base de datos de Microsoft Access .mdb o .accdb.
Expandir todo | Contraer todo

Resumen

Si desea imprimir un informe en una impresora determinada, puede seleccionar manualmente la impresora y todas las opciones de impresión o puede automatizar el proceso para que con un simple clic en un botón pueda cambiar de impresora e imprimir un informe con las opciones que predefine. En este artículo se explica cómo automatizar el proceso de selección de impresora.

Más información

Este procedimiento utiliza dos ejemplos: imprimir en una impresora láser e imprimir en una impresora matricial de puntos. Puede sustituir las impresoras determinadas que desea utilizar. Para automatizar el proceso de selección de impresora para un informe determinado, siga estos pasos:
  1. Cree los tres informes siguientes:
    • rptLaserPrinter
    • rptDotMatrix
    • rptMyReport
    NOTA: rptMyReport representa el informe real que desea imprimir.
  2. Para configurar las opciones de impresora, siga estos pasos:
    1. Abra rptLaserPrinter en la vista Diseño.
    2. En el menú Archivo, haga clic en Imprimir.

      Nota: en Access 2007, haga clic en el botón de Microsoft Office y, a continuación, haga clic en Imprimir.
    3. En el cuadro de diálogo Imprimir, haga clic en la impresora láser que desea utilizar en el cuadro Nombre y, después, haga clic en Aceptar.
    4. Haga clic en Propiedades, establezca las opciones de impresión que desee, como la orientación y el tamaño del papel, y haga clic en Aceptar.
    5. Repita los pasos a a d para rptDotMatrix. Haga clic en la impresora matricial de puntos en el paso c.
  3. En la ventana Base de datos, haga clic en Módulos, haga clic en Nuevo y escriba la función siguiente:

    Nota: en Access 2007, haga clic en Módulo en el grupo Otros de la ficha Crear.

    Function ChangePrinter(rptToChange As String, rptPrinter As String)
    
       Dim rpt1 As Report, rpt2 As Report
               
       DoCmd.OpenReport rptToChange, acViewDesign
       DoCmd.OpenReport rptPrinter, acViewDesign
               
       Set rpt1 = Reports(rptToChange)
       Set rpt2 = Reports(rptPrinter)
               
       rpt1.PrtDevNames = rpt2.PrtDevNames
               
       DoCmd.Close acReport, rptPrinter, acSaveNo
       DoCmd.OpenReport rptToChange, acViewPreview
    End Function
    						
    NOTA: la función ChangePrinter copia la propiedad PrtDevNames de un informe a otro. Puede copiar entonces las opciones de impresión establecidas para los informes rptLaserPrinter y rptDotMatrix a un informe concreto que desee imprimir.

    NOTA: la propiedad "acSaveNo" se utiliza en la línea de código "DoCmd.Close acReport, rptPrinter, acSaveNo" que se muestra anteriormente en esta sección. Si no utiliza esta opción y guarda el PrtDevName de una impresora no predeterminada en el diseño del informe, el informe no encontrará la impresora la próxima vez que se ejecute. Es posible que reciba un mensaje de error similar al siguiente:
    Previamente se le dio a este documento formato para la impresora <nombreDeImpresora> en <puerto>, pero esta impresora no está disponible. ¿Desea usar la impresora predeterminada <nombreDeImpresoraPredeterminada> en <puerto>?
  4. Guarde el módulo como Module1 y salga del Editor de Visual Basic.
  5. Cree el formulario siguiente:
       Formulario: frmForm1
       ------------------------------
          Origen del registro: Independiente
    
       Tipo de control: Botón de comando
          Nombre: cmdLaser
          Título: Láser
       Tipo de control: Botón de comando
          Nombre: cmdDotMatrix
          Título: Matricial de puntos
    					
  6. En el menú Ver, haga clic en Código.

    Nota: en Access 2007, haga clic en Ver código en el grupo Herramientas de la ficha Diseño.
  7. En el Editor de Visual Basic, escriba los procedimientos siguientes:
    Private Sub cmdLaser_Click ()
    
      Call ChangePrinter("rptMyReport", "rptLaserPrinter")
      DoCmd.PrintOut
    
    End Sub
    
    Private Sub cmdDotMatrix_Click ()
    
      Call ChangePrinter("rptMyReport", "rptDotMatrix")
      DoCmd.PrintOut
    
    End Sub
    					
  8. Salga del Editor de Visual Basic y cambie la propiedad Al hacer clic de ambos botones de comando a [Procedimiento de evento]. Para ello, siga estos pasos:
    1. En la vista Diseño, haga clic en el botón de comando y, a continuación, haga clic en Propiedades en el menú Ver.

      Nota: en Access 2007, haga clic en el botón de comando en la vista Diseño y, a continuación, haga clic en Hoja de propiedades en el grupo Herramientas de la ficha Diseño.
    2. Haga clic en la ficha Evento, haga clic en la propiedad Al hacer clic, haga clic en la flecha hacia abajo y, a continuación, haga clic en [Procedimiento de evento].
  9. Para imprimir rptMyReport en una impresora determinada, abra frmForm1 en la vista Formulario y haga clic en el botón adecuado.

Referencias

Para obtener más información acerca de cómo controlar la impresora desde Microsoft Access, visite el siguiente sitio web de Microsoft:

http://msdn2.microsoft.com/en-us/library/Aa207072(office.10).aspx

Propiedades

Id. de artículo: 319317 - Última revisión: viernes, 25 de enero de 2008 - Versión: 7.2
La información de este artículo se refiere a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbinfo kbexpertiseinter kbprogramming kbdatabase kbprinters kbreport kbhowto KB319317

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com