🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. 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!Formaciones  
Forms![NombreFormulario]  
    'Ejemplo: Forms![Formaciones]  
Forms("NombreFormulario")  
    'Ejemplo: Forms("Formaciones")  
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: [Participantes].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...

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!Formation  
Reports![NombreInforme]  
    'Ejemplo: Reports![Formation]  
Reports("NombreInforme")  
    'Ejemplo: Reports("Formaciones")  
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...

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_Animal![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_Animal.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....

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 en la que podemos ver el grupo Controles, que se muestra a continuación:

Images/ri09_1.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 hipertexto

Hyperlink

Grupo de opciones

OptionGroup

Salto de página

PageBreak

Zona de lista desplegable

ComboBox

Gráfico

Chart

Trazo

Line

Botón de cambio

ToggleButton

Zona de lista...