Introducción y definiciones previas
Access se
ha transformado en una herramienta sencilla de usar, que permite alojar datos y
crear aplicaciones de base de datos por medio de sistemas y funciones especializadas
para ello. Hoy por hoy, se dice que este representa más que un mantenedor de
bases de datos y se impone como una herramienta de gestión fundamental para las
empresas del nuevo siglo, ya que ha permitido la creación de programas computacionales
a medida que se ajustan a las problemáticas y necesidades coyunturales de las
organizaciones actuales, permitiendo el aumento de la eficiencia y eficacia en
el trabajo. Cabe mencionar que Access
resulta el programa medular de este post.
Por otro
lado, el análisis y la administración de datos han crecido notablemente el
último tiempo. Por lo mismo, para lograr el manejo óptimo de las estructuras de
orden, procedimientos y tareas, se han desarrollado herramientas que permiten
automatizar un grupo de órdenes escritas. Las Macros son un conjunto de instrucciones escritas que permiten
automatizar y llevar a cabo tareas complejas. Muchas veces, basta tan sólo dar
un click a un botón. Macros opera
bajo el lenguaje de programación Visual
Basic (VBA), el cual resulta
elemental para las herramientas de Excel
y otros programas de Microsoft Office.
Se debe tener presente que manejar esta herramienta representa una ventaja
comparativa en el vertiginoso mundo de los negocios.
A
continuación se entrega una secuencia lógica, usando Macros, sobre un objeto de base de datos que puede utilizarse para
escribir, modificar y mostrar datos de una consulta o de una tabla, es decir,
un formulario. En esta lección, se
enseñará a habilitar preguntas anidadas y condicionadas a la(s) respuesta(s) de
otra pregunta. Primero, resulta útil revisar ciertas estructuras que
encontramos en lenguaje VBA, las
cuales serán fundamentales para el correcto entendimiento del contenido medular
de este post. Tener en cuenta que el contenido presente en esta publicación
requiere un nivel intermedio de uso de formularios
en Access y Macros.
Estructuras Condicionales
En Visual Basic para Aplicaciones (VBA) existen dos tipos de estructuras
clásicas, las del tipo condicional y las reiterativas. Para efectos de esta
publicación, sólo será necesario detallar la primera. Ahora bien, se mostrará
principalmente su sintaxis y lógica, los aspectos más teóricos y elementales
exceden el propósito de este post y, por lo tanto, representa labor del lector
ahondar en estos contenidos.
Las estructuras condicionales son instrucciones de programación que tienen
como propósito evaluar si una condición es verdadera (True) o falsa (False) y
posteriormente permiten especificar instrucciones a seguir según el resultado
de la condición. Se debe tener presente que este tipo de estructura cumple con
las propiedades de Operación Lógica. Además, para usar más de una condición,
podemos hacer uso de las operaciones Or
en el caso de la conjunción disyuntiva (O) y el And para la conjunción
copulativa (Y).
La
estructura condicional If <cond>
Then … End If se compone de la forma
que se muestra en la Ilustración I
adjunta:
Observaciones:
- Sub y End
Sub indican el inicio y el final de la Macro de nombre “estructuras_condicionales”.
- Or puede
ser reemplazado por And si se quiere imponer estrictamente el
cumplimiento de varias sentencias a la vez.
- Si va una sola condición, no se imponen los
operadores lógicos (And y Or).
- La Ilustración I muestra que si se cumple lo
que se impone después del If,
entonces (Then) se ejecutarán las
sentencias seguidas de esta. En otro caso, se ejecutarán las que se encuentren
luego de Else.
- Se sugiere al lector ampliar los contenidos y
buscar el segundo tipo de estructura condicional: Select Case, lo que es equivalente a tener un If… End if de forma anidada.
Macro para pregunta con check list de formulario en Access
Nivel de dificultad: Intermedio.
Objetivo:
Habilitar pregunta(s) anidada(s) a otra(s) pregunta(s) utilizando una Macro para formulario en Access.
Tal cual se
indicó en la primera parte, el principal propósito de esta publicación es dar
una lección formativa, vía Macros,
que permita complementar la creación y edición de los formularios en Access.
En lo puntual, se mostrará el paso a paso de la habilitación de preguntas que
se encuentran anidadas o que las respuestas de una de ellas estén condicionadas
a las de otra pregunta. Esto te permitirá generar mejores formularios, más funcionales y coherentes con las exigencias de los
mismos.
Es un probable que hayas, en más de una
oportunidad, utilizado un check list
o lista de verificación. Esta permite analizar, comprobar y verificar una lista.
El ejemplo que se presenta para mostrar esta Macro, es un formulario
de ingreso de un alumno a la base de datos de cierto establecimiento
educacional. El módulo de interés es “Antecedentes
Escolares”, puntualmente los campos “¿Ha
repetido algún curso?” y “Curso que
ha repetido”. Luego, se pretende habilitar el campo “Curso que ha repetido” solamente en el caso que el alumno haya
repetido algún curso. Esto último se muestra
en la Ilustración II adjunta, en la
que se activa una lista desplegable que permite indicar el curso reprobado por
el alumno a partir del “sí” de la
pregunta “¿Ha repetido algún curso?”.
“Paso a paso” para lograr la Macro
- Tener las etiquetas de los campos y las preguntas que deseas que posea el formulario en cuestión.
- Inhabilitar la(s) pregunta(s) que buscas
anidar a la(s) respuesta(s) de otro campo. En este caso se debe inhabilitar la
lista desplegable asociada a “Curso que
se ha repetido”.- Formulario en “modo diseño”.- Seleccionar (pinchar) lista desplegable asociada a “Curso que ha repetido”.- Ir a “hoja de propiedades” (ALT+ENTER) de la lista y seleccionar la pestaña “Datos”.- Modificar “Sí” por “No” en opción “habilitado” (ver Ilustración III adjunta).
- Programar Macro sobre check list
asociado a la pregunta “¿Ha repetido
algún curso?” y automatizar orden de habilitar lista desplegable de “Curso que ha repetido” en caso de que la
respuesta a la primera pregunta sea afirmativa.- Formulario en “modo “diseño”.- Seleccionar el check list en cuestión.- Ir a “hoja de propiedades” (ALT+ENTER) de la lista y seleccionar la pestaña “eventos”.- Hacer click sobre botón que contiene 3 puntos suspensivos en su interior (“…”) en la opción “Al hacer click” (primera fila de opciones de la pestaña “eventos” de la “hoja de propiedades”). Esto permite especificar la forma en que el evento dará inicio a la automatización buscada. Se abrirá el cuadro “elegir generador”, el que ofrece 3 alternativas para crear el evento. Debe pinchar la opción “generador de código” para esta Macro. Presione “aceptar” (ver Ilustración IV adjunta).- El paso anterior abrirá una ventana que permitirá programar la Macro en lenguaje VBA. Ahora es cuando le será útil haber aprendido la sintaxis y uso de las estructuras condicionales (primera parte de esta publicación).- Finalmente, la Macro se computa como muestra la Ilustración V adjunta. Luego, se cierra la ventana VBA y la automatización está terminada. Se cambia a “vista formulario” y se chequea que la Macro funcione.
- En (1) se indica que si el chek list relacionado con “¿Ha repetido algún curso?” es “sí” (True), entonces se ejecutará la sentencia especificada en (2). Notar que para aludir al check list, se invoca a través de su nombre luego de “Me.”.
- La sentencia de (2) permite habilitar la lista desplegable asociada al “Curso que ha repetido” (recordar que previamente se había inhabilitado) agregando “.Enabled = True” luego de “Me.” y el nombre de la lista desplegable (en este caso “Cuadro_combinado163”).
- Las sentencias que se especifican después del Else, se ejecutarán en caso que no se active el check list (False de (1)). De esta forma, se ejecutarán las sentencias (3) y (4).
- Tener presente que se debe terminar con el comando End If para computar la Macro
---------------------------------------------------------------------------------------------------------------------
Y este es el final de esta lección educativa que buscaba, vía Macros, complementar la creación y edición de los formularios en Access. Se mostró el paso a paso de la habilitación de preguntas que se encuentran anidadas o que las respuestas de una de ellas estén condicionadas a las de otra pregunta. Esto te permitirá generar mejores formularios, mucho más funcionales y te dará una ventaja comparativa entre tus colegas.
¡Queda pendiente subir un link de descarga del archivo para que puedas ahondar los contenidos y practicar con el archivo adicional!
Slds!
No hay comentarios:
Publicar un comentario