
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)
|