Puede usar la acción de macro GoToControl en bases de datos de escritorio de Access y aplicaciones web de Access para mover el foco al campo o control especificado en el registro actual del formulario abierto, la hoja de datos de formulario, la hoja de datos de tabla o la hoja de datos de consulta. Puede usar esta acción cuando desee que un campo o control determinado tenga el foco. Este campo o control se puede usar para comparaciones o acciones de FindRecord . También puede usar esta acción para navegar en un formulario de acuerdo con ciertas condiciones. Por ejemplo, si el usuario escribe No en un control Casado de un formulario de seguro médico, el foco puede omitir automáticamente el control Nombre del cónyuge y pasar al siguiente control.
Configuración
La acción GoToControl tiene el siguiente argumento.
| Argumento de la acción | Descripción |
|---|---|
| Nombre del control | Escriba el nombre del campo o control donde desea el foco. Este argumento es obligatorio. Nota: Escriba solo el nombre del campo o control en el argumento Nombre del control , no el identificador completo, como [Forms]! [Productos]! [Product ID] si usa una base de datos de escritorio de Access. |
Observaciones
No puede usar la acción de macro GoToControl para mover el foco a un control en un formulario oculto.
Recomendación
Puede usar la acción de macro GoToControl para desplazarse a un subformulario, que es un tipo de control. A continuación, puede usar la acción GoToRecord para desplazarse a un registro determinado en el subformulario. También puede desplazarse a un control de un subformulario mediante la acción GoToControl para desplazarse primero al subformulario y, después, al control del subformulario.
Para ejecutar la acción GoToControl en un módulo de Visual Basic para Aplicaciones (VBA), utilice el método GoToControl del objeto DoCmd . También puede usar el método SetFocus para mover el foco a un control de un formulario o a cualquiera de sus subformularios, o a un campo de una tabla, consulta u hoja de datos de formulario abierta.
Ejemplos
Establecer el valor de un control mediante una macro
La siguiente macro abre el formulario Agregar productos desde un botón en el formulario Proveedores. Muestra el uso de las acciones Echo, Close, OpenForm, SetValue y GoToControl . La acción EstablecerValor establece el control Id. de proveedor en el formulario Productos para el proveedor actual en el formulario Proveedores. Entonces, la acción de GoToControl mueve el foco al campo Id. de categoría, donde puede empezar a introducir datos para el nuevo producto. Esta macro se debe adjuntar al botón Agregar productos del formulario Proveedores.
| Acción | Argumentos: Configuración | Comentario |
|---|---|---|
| Eco | Eco encendido: No | Detener la actualización de pantalla mientras se ejecuta la macro. |
| Cerrar |
Tipo de objeto: formulario Nombre del objeto: Lista de productos Guardar: No |
Formulario Cerrar lista de productos. |
| OpenForm |
Nombre de formulario: Productos Ver: Formulario Modo de datos: Agregar Modo de ventana: Normal |
Abra el formulario Productos. |
| Valor establecido |
Objeto: [Formularios]! [Productos]! [Id. de proveedor] Expresión: SupplierID |
Establezca el control Id. de proveedor al proveedor actual en el formulario Proveedores. |
| GoToControl | Nombre del control: CategoryID | Vaya al control Id. de categoría. |
Validar datos mediante una macro
La siguiente macro de validación comprueba los códigos postales especificados en un formulario de proveedores. Muestra el uso de las acciones StopMacro, MessageBox, CancelEvent y GoToControl . Una expresión condicional comprueba el país o región y el código postal especificados en un registro del formulario. Si el código postal no tiene el formato adecuado para el país o la región, la macro muestra un cuadro de mensaje y deja de guardar el registro. A continuación, la macro le devuelve al control Código postal, donde puede corregir el error. Esta macro se debe adjuntar a la propiedad BeforeUpdate del formulario Proveedores.
| Condición | Acción | Argumentos: Configuración | Comentario |
|---|---|---|---|
| If IsNull([CountryRegion]) | StopMacro | Si PaísRegión es nulo, el código postal no se puede validar. | |
| If [CountryRegion] In ("Francia","Italia","España") And Len([Código postal]) <> 5 | Cuadro de mensajes |
Mensaje: El código postal debe tener 5 caracteres. Pitido: Sí Tipo: Información Título: Error de código postal |
Si el código postal no tiene 5 caracteres, muestra un mensaje. |
| CancelEvent | Cancelar el evento. | ||
| GoToControl | Nombre del control: PostalCode | ||
| If [CountryRegion] In ("Australia","Singapur") And Len([Código postal]) <> 4 | Cuadro de mensajes | Mensaje: El código postal debe tener 4 caracteres. Pitido: Sí Tipo: Información Título: Error de código postal |
Si el código postal no tiene 4 caracteres, muestra un mensaje. |
| CancelEvent | Cancelar el evento. | ||
| GoToControl | Nombre del control: PostalCode | ||
| if ([PaísRegión] = "Canadá") Y ([Código postal] No como"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") | Cuadro de mensajes |
Mensaje: El código postal no es válido. Ejemplo de código canadiense: H1J 1C3 Pitido: Sí Tipo: Información Título: Error de código postal |
Si el código postal no es correcto para Canadá, muestra un mensaje. (Ejemplo de código canadiense: H1J 1C3) |
| CancelEvent | Cancelar el evento. |