Share via


Evento Form.Open (Access)

El evento Open se produce cuando se abre un formulario, pero antes de que se muestre el primer registro.

Sintaxis

expresión. Abrir (Cancelar)

expresión Variable que representa un objeto Form.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Cancel Obligatorio Integer El valor determina si se produce la operación de abrir el formulario o el informe. Al establecer el argumento Cancel en True (1), se cancela la apertura del formulario o informe.

Comentarios

Mediante la ejecución de una macro o un procedimiento de evento cuando se produce el evento Open de un formulario se puede, por ejemplo, cerrar otra ventana o situar el foco en un control determinado del formulario. También puede ejecutar una macro o procedimiento de evento que solicite la información necesaria antes de abrir o imprimir el formulario o informe.

Por ejemplo, una macro o procedimiento de evento Open puede abrir un cuadro de diálogo personalizado en el que el usuario escriba los criterios para filtrar el conjunto de registros que se mostrarán en un formulario o el intervalo de fechas que se incluirá en un informe.

El evento Open no se produce cuando se activa un formulario que ya está abierto; por ejemplo, al cambiar al formulario desde otra ventana de Microsoft Access o al usar la acción AbrirFormulario en una macro para llevar el formulario abierto a la parte superior. Sin embargo, el evento Activate se produce en estas situaciones.

Al abrir un formulario basado en una consulta subyacente, Microsoft Access ejecutará la consulta para el formulario antes de ejecutar la macro o procedimiento de evento Open.

Si la aplicación puede tener más de un formulario cargado a la vez, use los eventos Activate y Deactivate en lugar del evento Open para mostrar y ocultar barras de herramientas personalizadas cuando el foco se mueve a un formulario diferente.

El evento Open se produce antes del evento Load , que se desencadena cuando se abre un formulario y se muestran sus registros.

La primera vez que se abre un formulario, se producen los eventos siguientes, en el orden indicado:

OpenLoadResizeActivateCurrent

El evento Close se produce después del evento Unload , que se desencadena después de cerrar el formulario, pero antes de quitarlo de la pantalla.

Al cerrar un formulario, se producen los eventos siguientes, en el orden indicado:

UnloadDeactivateClose

Cuando se produce el evento Close , puede abrir otra ventana o solicitar el nombre del usuario para que realice una entrada de registro que indique quién usó el formulario o informe.

Si intenta decidir si desea usar el evento Open o Load para la macro o el procedimiento de evento, una diferencia significativa es que el evento Open se puede cancelar, pero el evento Load no. Por ejemplo, si va a crear dinámicamente un origen de registros para un formulario en un procedimiento de evento para el evento Open del formulario, puede cancelar la apertura del formulario si no hay registros que mostrar. Igualmente, el evento Unload se puede cancelar, pero el evento Close no.

Ejemplo:

En el ejemplo siguiente se muestra cómo cancelar la apertura de un formulario cuando el usuario elige un botón No . Un cuadro de mensaje pregunta al usuario si desea especificar detalles del pedido. Si el usuario elige No, no se abre el formulario Detalles del pedido .

Para probar el ejemplo, agregue el procedimiento de evento siguiente a un formulario.

Private Sub Form_Open(Cancel As Integer) 
 Dim intReturn As Integer 
 intReturn = MsgBox("Enter order details now?", vbYesNo) 
 Select Case intReturn 
 Case vbYes 
 ' Open Order Details form. 
 DoCmd.OpenForm "Order Details" 
 Case vbNo 
 MsgBox "Remember to enter order details by 5 P.M." 
 Cancel = True ' Cancel Open event. 
 End Select 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.