Configurar a través de código la impresora y propiedades de impresión de un formulario o informe (de momento, sólo para Access 2000 o superior)


Volver

En bastantes ocasiones se ha consultado la cuestión de configurar una impresora y sus propiedades para un informe o formulario en una mdb utilizando código.

En mi opinión, Access da muy pocas facilidades para esto (al menos hasta la versión 2000). A partir de la versión 2002 ya podemos encontrar el objeto Printer y la colección Printers, así como la propiedad Printer de formularios e informes, que facilitan bastante estas cosas, aunque creo que se han dejado algunas cosas en el tintero.

Con el ejemplo que he preparado (una base de datos con 7 módulos de clase), creo que logramos algo, o al menos eso es lo que he intentado. Se trata de las siguientes clases:

  • PageSetUp: objeto que encapsula todas las propiedades del cuadro de diálogo "Configurar página" (y alguna cosa más)
  • acPrinters: objeto/colección que almacena información sobre las impresoras instaladas en el sistema, compuesta de objetos:
  • acPrinter: objeto que almacena
    • Nombre de la impresora (DeviceName)
    • Nombre del controlador de la impresora (DriverName)
    • Puerto seleccionado para la impresora (Port)
    • Valor indicando si es la impresora predeterminada (IsDefault)
    • Papers: Propiedad que apunta a un objeto Papers
    • Bins: Propiedad que apunta a un objeto Bins
  • Papers: objeto/colección que almacena información sobre los tipos de papel soportados por la impresora, compuesta de objetos:
  • Paper: objeto que almacena
    • Nombre del tipo de papel (FormName)
    • Tipo de papel (PaperSize). Encontraréis información sobre los valores de esta propiedad en la ayuda de VB para Access, bajo el título "Valores del miembro PaperSize" o en la propiedad PrtDevMode
    • Ancho, en décimas de mm (PaperWidth)
    • Alto, en décimas de mm (PaperLength)
  • Bins: objeto/colección que almacena información sobre los tipos de origen de papel (bandejas) soportados por la impresora, compuesta de objetos:
  • Bin: objeto que almacena
    • Nombre del tipo de origen (BinName)
    • Tipo de origen (BinType). Encontraréis información sobre los valores de esta propiedad en la ayuda de VB para Access, bajo el título "Valores del miembro DefaultSource" o en la propiedad PrtDevMode

Para construir todo este código, me he basado en los artículos y código de los siguientes sitios:

http://www.microsoft.com/AccessDev/Articles/GetzCh10.HTM
http://www.mcwtech.com/downloads.htm

Y como no, gracias a la inestimable ayuda de Ken Getz y los autores de "The Access Developers Handbook", que amablemente han publicado el código de todos estos ejemplos y más...

Para descargar he preparado una base de datos con los módulos de clase y un módulo estandar con unas pequeñas indicaciones de cómo utilizar los objetos. También podéis descargar por separado los módulos de clase. Tened en cuenta que debéis importar los módulos de clase desde la ventana del editor de Visual Basic, para que Access "importe" también una serie de atributos que hacen que funcione como es debido todo este tinglado (si tenéis curiosidad, cambiadle la extensión .cls, por .txt a estos módulos y así los editaréis con el Bloc de notas sin mayor problema)

Descargar base de datospsetup.zip 120 KB
Descargar módulos psetupcls.zip 12,4 KB
Contactar Última actualización 12/10/2003     © Juan M. Afán deRibera