Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Formularios e informes: interfaces de usuario

Introducción

Es posible personalizar los formularios e informes con el lenguaje VBA. Por ejemplo, es posible:

  • modificar la apariencia de un control en un informe o un formulario (tamaño, posición, color, etc.),

  • añadir o eliminar controles en un informe o un formulario,

  • ver sobre la marcha formularios, haciendo clic en botones,

  • imprimir un informe,

  • etc.

El objeto Form

El objeto Form pertenece a la colección Forms y se corresponde con un formulario Forms que da la lista del resto de los formularios abiertos. El objeto Activeform apunta al formulario activo.

1. Sintaxis

Para referirse a un formulario, hay varias sintaxis posibles, directamente relacionadas con el recorrido de los elementos de la colección Forms.

Forms!NombreFormulario  
    'Ejemplo Forms!Empleados  
Forms![NombreFormulario]  
    'Ejemplo: Forms![Empleados]  
Forms("NombreFormulario")  
    'Ejemplo: Forms("Empleados")  
Forms(Index)  
    'Ejemplo: Forms(2) 

La sintaxis más frecuente es Forms![NombreFormulario], permitiendo el uso de un nombre de formulario con un espacio, lo que la primera sintaxis no permite hacer.

Para referirse a un subformulario a partir del formulario padre, es necesario pasar por el nombre del objeto que contiene el subformulario, seguido de la palabra clave Form.

[SubFormulario].Form!ZonaDeTexto 
    'Ejemplo: [Empleados Detalle].Form.Txt_Nombre 

2. Equivalencia modo Creación/VBA

a. Pestaña Formato

En la pestaña Formato del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos.

images/RI09_03.png

La siguiente tabla lista las propiedades en la interfaz, su equivalente en VBA, así como el tipo de dato de la propiedad.

Etiqueta IHM

Propiedad VBA

Tipo de dato

Título

Caption

String

Vista predeterminada

DefaultView

Byte

Permitir vista Formulario

AllowFormView

Boolean

Permitir vista Hoja de datos

AllowDatasheetView

Boolean

Permitir vista Presentación

AllowLayoutView

Boolean

Tipo de imagen

PictureType

Byte

Imagen

Picture

String

Mosaico de imágenes

PictureTiling

Boolean

Distribución de la imagen

PictureAlignment

Byte

Modo de tamaño de la imagen

PictureSizeMode

Byte

Ancho

Width

Integer

Centrado automático

AutoCenter

Boolean

Ajuste de tamaño automático

AutoResize

Boolean

Ajustar a la pantalla

FitToScreen

Boolean

Estilo de los bordes

BorderStyle

Byte

Selectores de registro

RecordSelector

Boolean

Botones de desplazamiento

NavigationButtons

Boolean

Título de exploración

NavigationCaption

Boolean

Separadores de registros

DividingLines

Boolean

Barras de desplazamiento

ScrollBars

Byte

Cuadro de control

ControlBox

Boolean

Botón Cerrar

CloseButton

Boolean

Botones Minimizar Maximizar

MinMaxButtons

Byte

Movible

Moveable

Boolean

Tamaño del formulario dividido

SplitFormSize

Long

Orientación del formulario dividido

SplitFormOrientation

Byte

Barra divisora del formulario dividido

SplitFormSplitterBar

Boolean

Hoja de datos del formulario dividido

SplitFormDatasheet

Byte

Impresión del formulario dividido

SplitFormPrinting

Byte

Guardar la posición de la barra divisora

SplitFormSplitterBarSave

Boolean

Hoja secundaria de datos expandida

SubDatasheetExpanded

Boolean

Alto de hoja secundaria de datos

SubDatasheetHeight

Integer

Línea X

GridX

Integer

Línea Y

GridY

Integer

Diseño a imprimir

LayoutForPrint

Boolean

Orientación

Orientation

Byte

Origen de la paleta

PaletteSource

String

b. Pestaña Datos

En la pestaña Datos del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos:

images/RI09_06.png

Etiqueta IHM

Propiedad VBA

Tipo de dato

Origen...

El objeto Report

El objeto Report, que pertenece a la colección Reports, corresponde a un informe, Reports, que da la lista de todos los informes abiertos. El objeto ActiveReport apunta al informe activo.

1. Sintaxis

Para referirse a un informe, hay varias sintaxis posibles, directamente relacionadas con el recorrido de elementos de la colección Reports.

Reports!NombreInforme  
    'Ejemplo Reports!Contratos  
Reports![NombreInforme]  
    'Ejemplo: Reports![Contratos]  
Reports("NombreInforme")  
    'Ejemplo: Reports("Contratos")  
Reports(Index)  
    'Ejemplo: Reports(1) 

Como para los formularios, la sintaxis más frecuente es Reports![Nombre Informe], permitiendo el uso de un nombre de informe que tiene un espacio, cosa que no es posible con la primera sintaxis.

2. Equivalencia modo Creación/VBA

a. Pestaña Formato

En la pestaña Formato del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos:

images/RI09_19.png

La tabla siguiente lista las propiedades en la interfaz, su equivalente en VBA, así como el tipo de dato de la propiedad.

Etiqueta IHM

Propiedad VBA

Tipo de dato

Título

Caption

String

Vista predeterminada

DefaultView

Byte

Permitir vista Informes

AllowReportView

Boolean

Permitir vista Presentación

AllowLayoutView

Boolean

Tipo de imagen

PictureType

Byte

Imagen

Picture

String

Mosaico de imágenes

PictureTiling

Boolean

Distribución de la imagen

PictureAlignment

Byte

Modo de tamaño de la imagen

PictureSizeMode

Byte

Ancho

Width

Integer

Centrado automático

AutoCenter

Boolean

Ajuste de tamaño automático

AutoResize

Boolean

Ajustar a la página

FitToPage

Boolean

Estilo de los bordes

BorderStyle

Byte

Barras de desplazamiento

ScrollBars

Long

Cuadro de control

ControlBox

Boolean

Botón Cerrar

CloseButton

Boolean

Botones Minimizar Maximizar

MinMaxButtons

Byte

Movible

Moveable

Boolean

Mostrar márgenes de página

ShowPageMargins

Boolean

Línea X

GridX

Integer

Línea Y

GridY

Integer

Diseño a imprimir

LayoutForPrint

Boolean

Mantener junto el grupo

GrpKeepTogether

Byte

Páginas de la imagen

PicturePages

Byte

Encabezado de página

PageHeader

Byte

Pie de página

PageFooter

Byte

Orientación

Orientation

Byte

Origen de la paleta

PaletteSource

String

b. Pestaña Datos

En la pestaña Datos del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos:

Images/cap9_pag21.png

Etiqueta IHM

Propiedad VBA

Tipo de dato

Origen del registro

RecordSource

String

Filtro

Filter

String

Filtrar al cargar

FilterOnLoad

Boolean

Ordenar por

OrderBy

String

Ordenar por al cargar

OrderByOnLoad

Boolean

Permitir filtros

AllowFilters

Boolean

c. Pestaña Evento

En la pestaña Evento del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos:

images/RI09_23.png

Los diferentes eventos se han tratado en el capítulo anterior.

d. Pestaña Otras

En la pestaña Otras del panel de navegación Hoja de propiedades, pueden aparecer los siguientes elementos:

images/RI09_24.png

Etiqueta IHM

Propiedad VBA

Tipo de dato

Emergente

Popup

Boolean

Modal

Modal

Boolean

Agrupación de fechas

DateGrouping

Byte

Ciclo

Cycle

Byte

Bloqueos del registro

RecordLocks

Boolean

Nombre de banda de opciones

RibbonName

String...

El objeto Control

El objeto Control, que pertenece a la colección Controls, corresponde a un control, Controls, que da la lista de todos los controles de un formulario, subformulario, informe o subinforme. El objeto ActiveControl apunta al control activo.

1. Sintaxis

Para hacer referencia a un control, hay varias sintaxis posibles, directamente relacionadas con el recorrido de los elementos de la colección Controls.

FormularioOInforme!NombreControl 
    'Ejemplo Me!Txt_Nombre 
FormularioOInforme![NombreControl] 
    'Ejemplo: F_Empleado![Txt_Nombre] 
FormularioOInforme("NombreControl") 
    'Ejemplo: Me("Txt_Nombre") 
FormularioOInforme.NombreControl 
    'Ejemplo: Me.Txt_Nombre 

Podemos también pasar por la colección Controls con las sintaxis siguientes:

FormularioOInforme.Controls!NombreControl 
    'Ejemplo Me.Controls!Txt_Nombre 
FormularioOInforme.Controls![NombreControl] 
    'Ejemplo: F_Empleado.Controls![Txt_Nombre] 
FormularioOInforme.Controls("NombreControl") 
    'Ejemplo: Me.Controls("Txt_Nombre") 
FormularioOInforme.Controls(Indice) 
    'Ejemplo: Me.Controls(3) 

2. Propiedades genéricas comunes de la mayoría de los controles

Cada control tiene propiedades, métodos y eventos que le son propios. Las propiedades que se listan en este capítulo son propiedades genéricas de la mayoría de los controles.

a. Propiedades relacionadas con las dimensiones

Propiedad

Descripción

Height

Representa la altura del control.

Left

Representa la ubicación del control...

Los controles de Access

Los controles de Access son los elementos que permiten enriquecer una aplicación y vienen a completar las interfaces que el desarrollador pone a disposición del usuario final. Como cualquier aplicación profesional, debe ser intuitiva, y la gran variedad de controles directamente disponibles en el motor de Access, así como la posibilidad de llamar a controles adicionales (llamados controles ActiveX) hace que la realización de formularios e informes sea muy exitosa.

El objetivo de esta sección es permitir al lector tener un inventario de los controles directamente disponibles, asociados a su tipo VBA correspondiente.

Para añadir nuevos controles a un formulario o a un informe, puede abrir el formulario o el informe en modo Creación. Una vez que se activa este modo, aparece en la cinta de opciones una pestaña Diseño de formularios en la que podemos ver el grupo Controles, que se muestra a continuación:

Images/cap9_pag34.png

A continuación se muestra la lista de los controles mostrados en el orden de lectura (de izquierda a derecha, de arriba hacia abajo):

Etiqueta del control

Objeto VBA equivalente

Zona de texto

TextBox

Etiqueta

Label

Botón de comando

CommandButton

Control de pestaña

TabControl

Enlace

Hyperlink

Control de navegación

NavigationControl

Grupo de opciones

OptionGroup

Insertar un salto de página

PageBreak

Zona de lista desplegable

ComboBox

Curva

Line

Botón...