Evento Form. Open (Access)Form.Open event (Access)

El evento Open se produce cuando se abre un formulario, pero antes de que se muestre el primer registro.The Open event occurs when a form is opened, but before the first record is displayed.

SintaxisSyntax

expresión. Abrir (Cancelar)expression.Open (Cancel)

expresión Variable que representa un objeto Form.expression A variable that represents a Form object.

ParámetrosParameters

NombreName Obligatorio/opcionalRequired/Optional Tipo de datosData type DescripciónDescription
CancelCancel ObligatorioRequired IntegerInteger El valor determina si se produce la operación de abrir el formulario o el informe.The setting determines if the opening of the form or report occurs. Si se establece el argumento Cancel en true (1), se cancela la apertura del formulario o informe.Setting the Cancel argument to True (1) cancels the opening of the form or report.

ObservacionesRemarks

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.By running a macro or an event procedure when a form's Open event occurs, you can close another window or move the focus to a particular control on a form. 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.You can also run a macro or an event procedure that asks for information needed before the form or report is opened or printed.

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.For example, an Open macro or event procedure can open a custom dialog box in which the user enters the criteria to filter the set of records to display on a form or the date range to include for a report.

El evento Open no se produce cuando se activa un formulario que ya está abierto; por ejemplo, cuando se cambia al formulario desde otra ventana en Microsoft Access o se usa la acción AbrirFormulario en una macro para traer al frente el formulario abierto.The Open event doesn't occur when you activate a form that's already open; for example, when you switch to the form from another window in Microsoft Access or use the OpenForm action in a macro to bring the open form to the top. Sin embargo, **** el evento Activate se produce en estas situaciones.However, the Activate event does occur in these situations.

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.When you open a form based on an underlying query, Microsoft Access runs the underlying query for the form before it runs the Open macro or event procedure.

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 las barras de herramientas personalizadas cuando el enfoque se desplace a otro formulario. ****If your application can have more than one form loaded at a time, use the Activate and Deactivate events instead of the Open event to display and hide custom toolbars when the focus moves to a different form.

El evento Open se produce antes del evento Load , que se desencadena cuando se abre un formulario y se muestran sus registros.The Open event occurs before the Load event, which is triggered when a form is opened and its records are displayed.

La primera vez que se abre un formulario, se producen los eventos siguientes, en el orden indicado:When you first open a form, the following events occur in this order:

OpenLoadResizeActivateCurrentOpenLoadResizeActivateCurrent

El evento Close se produce después del evento Unload, que se activa después de cerrar el formulario pero antes de que desaparezca de la pantalla. ****The Close event occurs after the Unload event, which is triggered after the form is closed but before it is removed from the screen.

Al cerrar un formulario, se producen los eventos siguientes, en el orden indicado:When you close a form, the following events occur in this order:

UnloadDeactivateCloseUnloadDeactivateClose

Cuando se produce el evento Close , puede abrir otra ventana o solicitar el nombre del usuario para crear una entrada de registro que indique quién ha usado el formulario o informe.When the Close event occurs, you can open another window or request the user's name to make a log entry indicating who used the form or report.

Si está intentando decidir si va a usar el evento Open o Load para su macro o procedimiento de evento, una diferencia significativa es que el evento Open se puede cancelar, pero el evento Load no.If you are trying to decide whether to use the Open or Load event for your macro or event procedure, one significant difference is that the Open event can be canceled, but the Load event can't. Por ejemplo, si crea 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.For example, if you are dynamically building a record source for a form in an event procedure for the form's Open event, you can cancel opening the form if there are no records to display. Igualmente, el evento Unload se puede cancelar, pero el evento Close no.Similarly, the Unload event can be canceled, but the Close event can't.

EjemploExample

El siguiente ejemplo muestra cómo se puede cancelar la apertura de un formulario cuando el usuario elige un botón no .The following example shows how you can cancel the opening of a form when the user chooses a No button. Un cuadro de mensaje pregunta al usuario si desea especificar detalles del pedido.A message box prompts the user to enter order details. Si el usuario elige no, no se abre el formulario detalles de pedido .If the user chooses No, the Order Details form isn't opened.

Para probar el ejemplo, agregue el procedimiento de evento siguiente a un formulario.To try the example, add the following event procedure to a form.

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 comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.