Acción de macro SetValue
Se aplica a: Access 2013, Office 2013
Puede usar la ación SetValue para configurar el valor de un campo, un control o una propiedad de Microsoft Access en un formulario, una hoja de datos del formulario o un informe.
Nota:
- No puede usar la acción SetValue para configuar el valor de una propiedad de Access que devuelva un objeto.
- Esta acción no se permitirá si la base de datos no es de confianza.
Valor
La acción SetValue tiene los siguientes argumentos.
Argumento de acción |
Descripción |
---|---|
Item |
El nombre del campo, el control o la propiedad cuyo valor quiere configurar. Escriba el nombre del campo, el control o la propiedad en el cuadro Elemento de la sección Argumentos de acción del panel Generador de macros. Debe usar la sintaxis completa para hacer referencia a este elemento, como controlname (para un control en el formulario o el informe desde el que se llamó a la macro) o Forms!formname!controlname. Se trata de un argumento obligatorio. |
Expression |
La expresión que Access usa para configurar el valor de este elemento. Siempre debe usar la sintaxis completa para hacer referencia a los objetos 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 lo hace, Access evalúa la expresión y usa este valor como la expresión de este argumento. This can produce unexpected results if the expression is a string. For example, if you type ="String1" for this argument, Access first evaluates the expression as String1. Then it uses String1 as the expression in this argument, expecting to find a control or property named String1 on the form or report that called the macro. |
Nota:
En una base de datos de Access (.mdb o .accdb), haga clic en el botón Crear para usar el Generador de expresiones para crear una expresión para cualquiera de estos argumentos.
Comentarios
Puede usar esta acción para configurar un valor para un campo o un control de un formulario, una hoja de datos de formulario o un informe. También puede configurar el valor de casi todas las propiedades de los controles, formularios e informes de cualquier vista. Para averiguar si una propiedad determinada se puede configurar con una macro y en qué vistas se puede configurar, consulte el tema Ayuda para la propiedad en el Editor de Visual Basic.
También puede configurar el valor de un campo en la tabla subyacente de un formulario, incluso si el formulario no contiene un control enlazado al campo. Use la sintaxis Forms!formname!fieldname en el cuadro Elemento para configurar el valor de ese campo. También puede hacer referencia a un campo de tabla subyacente de un informe con la sintaxis Reports!reportname!fieldname, pero debe haber un control del informe enlazado a este campo o se debe hacer referencia al campo en un control calculado del informe.
Si configura el valor de un control en un formulario, la acción SetValue no desencadena las reglas de validación de nivel de formulario del control, pero desencadena las reglas de validación de nivel de tabla del campo subyacente si el control es un control enlazado. La acción SetValue también desencadena la actualización, pero puede que no se produzca de forma inmediata. Para desencadenar la actualización inmediatamente y forzar la finalización de la actualización, use la acción RepaintObject. El valor que se configura en un control con la acción SetValue tampoco se ve afectada por una máscara de entrada configurada en la propiedad InputMask del control o del campo subyacente.
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 una propiedad de evento BeforeUpdate del 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 SetValue para configurar el valor de los siguientes controles:
- Controles enlazados y calculados en informes.
- Controles calculados en formularios.
Sugerencia
Puede usar la acción SetValue para ocultar o mostrar un formulario en la vista Formulario. ¡Escriba formularios! formname**. Visible** en el cuadro Elemento y No o Sí en el cuadro Expresión . Configurar una propiedad Visible de un formulario modal en No oculta el formulario y lo convierte en no modal. Configurar la propiedad en Sí muestra el formulario y lo convierte en modal de nuevo.
Cambiar el valor de o agregar nuevos datos a un control mediante la acción SetValue en una macro no desencadena eventos como BeforeUpdate, BeforeInsert o Change que ocurren al cambiar o introducir datos en estos controles en la interfaz de usuario. Estos eventos tampoco ocurren si configura el valor del control con un módulo de Visual Basic para aplicaciones (VBA).
Esta acción no está disponible en un módulo de VBA. Configure el valor directamente en VBA.
Ejemplo
Configurar el valor de un control con una macro
La siguiente macro abre el formulario Agregar productos desde un botón del formulario Proveedores. Muestra el uso de las acciones Eco, CerrarVentana, AbrirFormulario, ConfigurarValor e IrAControl. La acción SetValue configura el control Id. de proveedor en el formulario Productos para el proveedor actual del formulario Proveedores. La acción IrAControl mueve el foco al campo Id. de categoría, donde puede empezar a introducir los datos para el nuevo producto. Esta macro se debe adjuntar al botón Agregar productos del formulario Proveedores.
Acción |
Argumentos: Configuración |
Comentario |
---|---|---|
Echo |
Eco activo: No |
Detener la actualización de la pantalla mientras se ejecuta la macro. |
CloseWindow |
Tipo de objeto: ObjetoFormulario Nombre: Lista de productos Guardar: No |
Cerrar el formulario Lista de productos |
OpenForm |
Formulario Nombre: Productos Vista: DatosDeFormulario: AgregarModo de ventana: Normal |
Abrir el formulario Productos. |
SetValue |
Elemento: [Forms]![Products]![SupplierID] Expresión: IdProveedor |
Configurar el control IdProveedor el proveedor actual del formulario Proveedores. |
GoToControl |
Nombre del control: IdCategoría |
Ir al control Id. |