¿Cuál es el argumento Expresión en las macros?
¿Cuál es el argumento Expresión en las macros?
Este argumento es la expresión que utiliza Access para calcular un valor y definir el elemento en función del resultado. La expresión puede incluir operadores, constantes, funciones y referencias a campos, controles y propiedades de formularios o informes abiertos.
Si la expresión es un valor de cadena, hay que incluir la cadena entre pares de comillas dobles. Por ejemplo, para definir el control Apellidos como Mayor, el argumento de acción Expresión debe ser «Mayor». Si la expresión es una fecha, hay que incluir la fecha entre símbolos numéricos. Por ejemplo, la fecha 11/2/02 habría que expresarla como #11/2/02#. Si la expresión es un valor numérico no es necesario utilizar ningún símbolo determinado. Por ejemplo, para definir el valor 100 en el argumento de acción Expresión tan sólo habría que escribir 100.
Cuando se introduce un argumento Expresión, Access asume que el valor es una expresión y no es necesario utilizar el signo igual (=). Por ejemplo, para definir la fecha actual como Alta de contrato se puede utilizar el argumento Expresión Ahora(). Si se incluye un signo igual, Access evalúa en primer lugar la expresión y utiliza el resultado como argumento.
Si se utiliza un signo de igualdad que no es necesario se puede ocasionar un error en la macro. Por ejemplo, si se quiere utilizar definir un cuadro de texto con el valor «Enrique Mayor» y se escribe – ‘Enrique Mayor» en el cuadro del argumento Expresión, Access evalúa la expresión y considera que el resultado es el nombre del control. Cuando Access trata de buscar el control [Enrique Mayor] y no lo encuentra, la acción EstablecerValor falla.
Esta peculiaridad solamente se aplica al argumento Expresión de la acción EstablcerValor y al argumento Expresión de repetición de la acción Ejecutar macro. El resto de los argumentos de expresión necesitan incluir el signo igual seguido de la expresión correspondiente.
Una expresión puede incluir referencias a campos, controles y propiedades de un formulario o informe abierto. Se puede hacer referencia a un campo del origen del registro de un formulario independientemente de si el formulario incluye un control vinculado a ese campo o no.
En cambio, sólo se puede hacer referencia al valor de un campo del origen del registro de un informe si en el informe se incluye un control vinculado al campo o un control calculado que haga referencia al campo del cálculo.
Habitualmente se suele usar la referencia cualificada aunque si la macro en la que se incluye la acción EstablecerValor se ejecuta desde el formulario o el informe en el que se encuentra el campo, control o propiedad, se puede utilizar la referencia breve o no cualificada.
Si el campo, control o propiedad a la que se hace referencia se encuentra en el formulario o informe activo, se pueden utilizar las propiedades del objeto Screen, como se puede ver en los siguientes ejemplos.
Nota: Para realizar un cálculo en un grupo de registros en un argumento de macro o en la celda Condición de una macro condicional, hay que usar funciones agregadas de dominio y no funciones agregadas de SQL. Por ejemplo, para calcular la suma de subtotales de pedidos, hay que utilizar DSuma () en lugar de Suma () .
Cómo utilizar la acción EstablecerValor para guardar valores provisionales en un formulario
Una de las diferencias entre programación de macros y de VBA es que los valores provisionales se gestionan de forma distinta en cada una de las dos modalidades. En programación VBA se puede crear y nombrar una variable como ubicación determinada en la memoria que sirva para almacenar el valor. En cambio, en la programación de macros, no se puede crear una macro de esta forma, aunque se puede simular guardando el valor provisionalmente en un control independiente de un formulario.
Para utilizar el control como si se tratara de una variable, hay que incluir un control independiente en el formulario y dejar en blanco la propiedad Origen del control. Habitualmente se puede ocultar utilizando la opción No de la propiedad Visible.
A continuación, se puede utilizar la acción EstablecerValor para guardar de forma temporal el valor dentro del formulario. El valor permanecerá disponible mientras el formulario esté abierto y deja de existir cuando se cierra. Más adelante utilizaremos un control independiente para guardar el valor de un contador de las repeticiones de una macro bucle.
Duplicado de comandos incorporados
Access incluye una amplia gama de comandos predeterminados que se utilizan cada vez que se escoge un comando de menú en una barra de menús o menú contextual o cada vez que se pulsa un botón de una barra de herramientas. En Access 2002, las barras de menús, menús contextúales y barras de herramientas se utilizan de la misma forma y por eso se denominan barras de comandos.
Cuando se trabaja directamente con una barra de comandos predeterminada, se puede apreciar que cada vista dispone de un conjunto específico de comandos dentro de sus propias barras de comandos. Por ejemplo, si la vista Formulario de un formulario es la ventana activa, el menú y la barra de herramientas de la vista Formulario aparecen en pantalla.
Si se pulsa con el botón derecho del ratón sobre el formulario, sobre un control del formulario, sobre un subformulario o sobre un control de un subformulario, se abre los menús contextúales característicos de la vista Formulario.
En la figura 29.7 se puede ver la barra de menús predeterminada de la vista Formulario, la barra de herramientas predeterminada y un menú contextual predeterminado. Las barras de comando predeterminadas de una vista incluyen los comandos predeterminados característicos de esa vista.
Si un comando predeterminado no está disponible puede que se deba a dos razones: el comando puede pertenecer a esa vista pero puede que no siempre esté disponible o el comando no es propio de la vista que se está utilizando.
Por ejemplo, para mostrar la columna Nombres de macro en la hoja de macros se puede añadir el comando Nombre de macros a la barra de herramientas Vista formulario. Sin embargo, cuando se esté utilizando un formulario y se pulsa el botón Nombres de macro Access genera un mensaje de error ya que este comando no pertenece a la vista Formulario.
Cuando se utiliza la acción de macro EjecutarComando se puede especificar un comando predeterminado. No obstante hay que prestar especial atención y seleccionar únicamente aquellos comandos que sean apropiados tanto para la vista como para las condiciones en las que se ejecute la macro.
Si se escoge un comando que no es apropiado o que no está disponible cuando se ejecuta la macro Access no podrá ejecutar la acción Ejecutar Comando. Por ejemplo, si se trata de ejecutar una macro con la acción Ejecutar comando del botón Deshacer cuando se abre un formulario por primera vez Access no podrá llevar a cabo la acción, mostrará un mensaje de error y se abrirá el cuadro de diálogo Falló la acción.
Es un poco complicado saber si un determinado comando que es apropiado para una vista estará disponible en el momento en que se quiere ejecutar la macro. La única forma de comprobarlo es probar las macros y determinar el punto en el que fallan.
Envío de mensajes
Si se quiere mostrar un mensaje en pantalla hay que utilizar para ello la acción CuadroMsj. El resultado de este tipo de acciones es un cuadro de mensaje en el que se incluye un mensaje personalizado, un título y el icono que haya sido seleccionado en los argumentos de la acción. El cuadro de mensaje dispone de un botón Aceptar sobre el cual el usuario debe pulsar con el fin de cerrar el cuadro y seguir a continuación con la operación que esté llevando a cabo en ese momento.