Acción de macro SetValue

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.

Valor

La acción de macro SetValue 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 nombre de campo, control o propiedad en el cuadro Elemento de la sección Argumentos de acción de la ventana de diseño de macros. 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ó al macro ) o Formularios! nombrede formulario! controlname. Este argumento es obligatorio.

Expresión

El expresión Access usa para establecer 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 de salario en 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, a continuación, usa este valor como la expresión de este argumento. Esto puede producir resultados inesperados si la expresión es una cadena.

Por ejemplo, si escribe ="String1" para este argumento, Access evalúa primero la expresión como Cadena1. A continuación, usa String1 como expresión en este argumento, esperando 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 para crear una expresión para cualquiera de estos argumentos.

Observaciones

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 se puede establecer una propiedad determinada mediante una macro y las vistas en las que se puede establecer, vea el tema ayuda de esa propiedad en el Editor de Visual Basic.

También puede establecer 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 Formularios! nombrede formulario! nombre del campo en el cuadro Elemento para establecer el valor de un campo de este tipo. También puede hacer referencia a un campo de la tabla subyacente de un informe mediante la sintaxis Informes! nombre_informe! nombre_de_campo,pero debe haber un control en el informe enlazado a este campo, o bien debe hacer referencia al campo en un control calculado en el 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í desencadena las reglas de validación de nivel de tabla del campo subyacente si el control es un control enlazado. La acción de macro SetValue también desencadena el recálculo, pero es posible que el recálculo no se haga inmediatamente. Para desencadenar el repintado inmediato y forzar la finalización del nuevo cálculo, use la acción de macro Volver a pintarObject. El valor que establezca en un control mediante la acción de macro SetValue tampoco se ve afectado por un conjunto de máscara de entrada 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 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 enlazados y controles calculados en informes.

  • Controles calculados en formularios.

Sugerencias

Puede usar la acción de macro SetValue para ocultar o mostrar un formulario en la vista Formulario. Escriba Forms!formname. Visible en el cuadro Elemento y No o en el cuadro Expresión. Al establecer modal la propiedad Visible de un formulario en No, se oculta el formulario y se convierte en modelo. Si establece la propiedad en Sí, se muestra el formulario y se vuelve modal.

Cambiar el valor o agregar nuevos datos en un control mediante la acción SetValue en una macro no desencadena eventos como BeforeUpdate, BeforeInserto 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 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 siguiente macro abre el formulario Agregar productos desde un botón del formulario Proveedores. Muestra el uso de las acciones de macro Echo, Close, OpenForm,SetValuey GoToControl. La acción SetValue establece el control IdDe Proveedores del formulario Productos en el proveedor actual en el formulario Proveedores. A continuación, la acción GoToControl mueve el foco al campo IdDe Categorías, 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 en: No

Detenga la actualización de pantalla mientras se ejecuta la macro.

Cierre

Tipo de objeto: formulario

Nombre del objeto:Lista de productos

Guardar: No

Cierre el formulario Lista de productos.

OpenForm

Nombre del formulario:Productos

Ver: Formulario

Modo de datos: Agregar

Modo de ventana: Normal

Abra el formulario Productos.

SetValue

Elemento: [Formularios]! [Productos]! [Id. de proveedor]

Expresión:Id. de proveedor

Establezca el control IdDe Proveedores en el proveedor actual en el formulario Proveedores.

GoToControl

Nombre del control:Id. de categoría

Vaya al control CategoryID.

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×