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.
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:
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:
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... |