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 la registro actual de la formulario abierta, formulario hoja de datos, hoja de datos de tabla o hoja de datos de consulta. Puede usar esta acción cuando desee que un campo o control concreto tenga el foco. Este campo o control se puede usar para realizar comparaciones o acciones BuscarRegistro . También puede usar esta acción para navegar en un formulario según determinadas condiciones. Por ejemplo, si el usuario escribe No en un control Casado en 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 quiera colocar 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 [Formularios]! [Productos]! [Id. de producto] si usa una base de datos de escritorio de Access. |
Comentarios
No puede usar la acción de macro GoToControl para mover el foco a un control de un formulario oculto.
Sugerencia: Puede usar la acción de macro GoToControl para desplazarse a un subformulario, que es un tipo de control. Después, 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 Visual Basic para Aplicaciones (VBA), use 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 de cualquiera de sus subformularios, o a un campo de una tabla, consulta u hoja de datos del formulario abierto.
Ejemplos
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 Echo, Close, OpenForm, SetValue y GoToControl . La acción SetValue establece el control Id. de proveedor del formulario Productos en el proveedor actual en el formulario Proveedores. A continuación, la acción GoToControl mueve el foco al campo Id. de categorí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 |
Cerrar 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 Id. de proveedor en el proveedor actual en el formulario Proveedores. |
Gotocontrol |
Nombre del control: IdCategoría |
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 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 especificado en un registro del formulario. Si el código postal no tiene el formato correcto para el país o la región, la macro muestra un cuadro de mensaje y cancela el guardado del registro. A continuación, la macro devuelve al control Código postal, donde puede corregir el error. Esta macro debe adjuntarse a la propiedad BeforeUpdate del formulario Proveedores.
Condición |
Acción |
Argumentos: Configuración |
Comentario |
If IsNull([PaísRegión]) |
StopMacro |
Si PaísRegión es Null, no se puede validar el código postal. |
|
Si [PaísRegión] en ("Francia","Italia","España") y Len([Código postal]) <> 5 |
Messagebox |
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, muestre un mensaje. |
Cancelarevento |
Cancelar el evento. |
||
Gotocontrol |
Nombre del control: CódigoPostal |
||
Si [PaísRegión] en ("Australia","Singapur") y Len([Código postal]) <> 4 |
Messagebox |
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, muestre un mensaje. |
Cancelarevento |
Cancelar el evento. |
||
Gotocontrol |
Nombre del control: CódigoPostal |
||
If ([PaísRegión] = "Canadá") And ([Código postal] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Messagebox |
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á, muestre un mensaje. (Ejemplo de código canadiense: H1J 1C3) |
Cancelarevento |
Cancelar el evento. |