Puede usar la acción de macro SetValue para establecer el valor de un campo, control o propiedad de access en un formulario, un formulario hoja de datos o un informe.
Nota: No puede usar la acción de macro SetValue para establecer el valor de una propiedad de Access que devuelve un objeto.
Nota: Esta acción no se permitirá si la base de datos no es de confianza.
Configuración
La acción de macro EstablecerValor tiene los siguientes argumentos:
Argumento de la acción |
Descripción |
Elemento |
El nombre del campo, control o propiedad cuyo valor desea establecer. Escriba el campo, control o nombre de propiedad en el cuadro Elemento de la sección Argumentos de la acción de la ventana de diseño de la macro. Debe usar la sintaxis completa para hacer referencia a este elemento, como nombreControl (para un control en el formulario o informe desde el que se llamó a la macro ) o Formularios. nombre_formulario! nombre del control. Este argumento es obligatorio. |
Expression |
La expresión access usa para establecer el valor de este elemento. Siempre debe usar la sintaxis completa para hacer referencia a cualquier objeto de la expresión. Por ejemplo, para aumentar el valor de un control Salario de un formulario Empleados en un 10 por ciento, use Forms!Employees!Salary*1.1. Este argumento es obligatorio. Nota: No debe usar un signo igual (=) antes de la expresión de este argumento. Si es así, Access evalúa la expresión y, a continuación, usa este valor como expresión en este argumento. Esto puede producir resultados inesperados si la expresión es una cadena. Por ejemplo, si escribe ="Cadena1" para este argumento, Access primero evalúa la expresión como Cadena1. A continuación, usa String1 como expresión en este argumento, que espera encontrar un control o propiedad denominado String1 en el formulario o informe que llamó a la macro. |
Nota: En una base de datos de Access (.mdb o .accdb), haga clic en el botón Generar para usar el Generador de expresiones y crear una expresión para cualquiera de estos argumentos.
Comentarios
Puede usar esta acción para establecer un valor para un campo o control en un formulario, una hoja de datos del formulario o un informe. También puede establecer el valor de casi todas las propiedades de control, formulario e informe en cualquier vista. Para averiguar si una propiedad determinada se puede establecer mediante una macro y en qué vistas se puede establecer, vea el tema de ayuda de esa propiedad en el Editor de Visual Basic.
También puede establecer el valor de un campo de la tabla subyacente de un formulario incluso si el formulario no contiene un control enlazado al campo. Use la sintaxis Formularios. nombre_formulario! nombre de campo en el cuadro Elemento para establecer el valor de dicho campo. También puede hacer referencia a un campo de la tabla subyacente de un informe mediante la sintaxis Informes. nombrede informe. nombre_campo, pero debe haber un control en el informe enlazado a este campo, o se debe hacer referencia al campo en una control calculado del informe.
Si establece el valor de un control en un formulario, la acción de macro SetValue no desencadena las reglas de validación de nivel de formulario del control, pero sí activa las reglas de validación de nivel de tabla del campo subyacente si el control es un control dependiente. La acción de macro SetValue también desencadena el recálculo, pero es posible que no se produzca inmediatamente. Para desencadenar el repintado inmediato y forzar la finalización del nuevo cálculo, use la acción de macro RepaintObject . El valor que se establece en un control mediante la acción de macro SetValue tampoco se ve afectado por un máscara de entrada establecido en la propiedad InputMask del campo subyacente o del control.
Para cambiar el valor de un control, puede usar la acción SetValue en una macro especificada por la propiedad de evento AfterUpdate del control. Sin embargo, no puede usar la acción SetValue en una macro especificada por la propiedad de evento BeforeUpdate de un control para cambiar el valor del control (aunque puede usar la acción SetValue para cambiar el valor de otros controles). También puede usar la acción SetValue en una macro especificada por la propiedad BeforeUpdate o AfterUpdate de un formulario para cambiar el valor de los controles del registro actual.
Nota: No puede usar la acción de macro SetValue para establecer el valor de los siguientes controles:
-
Controles dependientes y controles calculados en informes.
-
Controles calculados en formularios.
Recomendaciones
Puede usar la acción de macro SetValue para ocultar o mostrar un formulario en la vista Formulario. Escriba Forms!nombre_de_formulario. Visible en el cuadro Elemento y No o Sí en el cuadro Expresión . Establecer la propiedad Visible de un formulario de modal en No oculta el formulario y lo modela. Si establece la propiedad en Sí, se muestra el formulario y lo vuelve modal.
Cambiar el valor de un control o agregar nuevos datos mediante la acción SetValue de una macro no desencadena eventos como BeforeUpdate, BeforeInsert o Change que se producen al cambiar o escribir datos en estos controles en la interfaz de usuario. Estos eventos tampoco se producen si establece el valor del control mediante un módulo de Visual Basic para Aplicaciones (VBA).
Esta acción no está disponible en un módulo de VBA. Establezca el valor directamente en VBA.
Ejemplo
Establecer el valor de un control mediante una macro
La macro siguiente abre el formulario Agregar productos desde un botón del formulario Proveedores. Muestra el uso de las acciones de macro Echo, Close, OpenForm, SetValue y GoToControl . La acción SetValue establece el control IdDeProvee en el formulario Productos en el proveedor actual en el formulario Proveedores. A continuación, la acción GoToControl mueve el foco al campo IdCategoría, donde puede empezar a escribir datos para el nuevo producto. Esta macro debe adjuntarse al botón Agregar productos del formulario Proveedores.
Acción |
Argumentos: Configuración |
Comentario |
Echo |
Eco activado: No |
Detener la actualización de la pantalla mientras se ejecuta la macro. |
Cerrar |
Tipo de objeto: formulario Nombre de objeto: lista de productos Guardar: no |
Cierre el formulario Lista de productos. |
Abrirformulario |
Nombre del formulario: Productos Ver: formulario Modo de datos: Agregar Modo de ventana: Normal |
Abra el formulario Productos. |
Establecervalor |
Elemento: [Formularios]! [Productos]! [IdProvee] Expresión: IdProvee |
Establezca el control IdProvee para el proveedor actual en el formulario Proveedores. |
Gotocontrol |
Nombre del control: IdCategoría |
Vaya al control IdCategoría. |