Objeto Form (Access)Form object (Access)

Un objeto Form hace referencia a un formulario particular de Microsoft Access.A Form object refers to a particular Microsoft Access form.

ComentariosRemarks

Un objeto Form es un miembro de la colección Forms, que es una colección de todos los formularios abiertos actualmente.A Form object is a member of the Forms collection, which is a collection of all currently open forms. En la colección Forms, los formularios individuales se indizan a partir de cero.Within the Forms collection, individual forms are indexed beginning with zero. Puede referirse a un objeto Form determinado de la colección Forms haciendo referencia al formulario por su nombre o por su índice dentro de la colección.You can refer to an individual Form object in the Forms collection either by referring to the form by name, or by referring to its index within the collection.

Si quiere hacer referencia a un objeto específico de la colección Forms, es conveniente hacer referencia al formulario por su nombre, ya que el índice de la colección del formulario puede cambiar.If you want to refer to a specific form in the Forms collection, it's better to refer to the form by name because a form's collection index may change. Si el nombre del formulario incluye un espacio, el nombre debe estar encerrado entre corchetes ([ ]).If the form name includes a space, the name must be surrounded by brackets ([ ]).

SintaxisSyntax EjemploExample
AllForms!formnameAllForms!formname AllForms!OrderForm
AllForms![form name]AllForms![form name] AllForms![Order Form]
AllForms("formname")AllForms("formname") AllForms("OrderForm")
AllForms(index)AllForms(index) AllForms(0)

Cada objeto Form tiene una colección Controls que contiene todos los controles del formulario.Each Form object has a Controls collection, which contains all controls on the form. Puede hacer referencia a un control de un formulario haciendo referencia de manera implícita o explícita a la colección Controls.You can refer to a control on a form either by implicitly or explicitly referring to the Controls collection. El código será más rápido si hace referencia a la colección Controles implícitamente.Your code will be faster if you refer to the Controls collection implicitly. En los ejemplos siguientes se muestran dos maneras de hacer referencia a un control denominado NewData en el formulario llamado OrderForm.The following examples show two of the ways you might refer to a control named NewData on the form called OrderForm.

 ' Implicit reference. 
Forms!OrderForm!NewData
' Explicit reference. 
Forms!OrderForm.Controls!NewData

En los dos ejemplos siguientes se muestra cómo hacer referencia a un control denominado NewData de un subformulario ctlSubForm incluido en el formulario OrderForm.The next two examples show how you might refer to a control named NewData on a subform ctlSubForm contained in the form called OrderForm.

Forms!OrderForm.ctlSubForm.Form!Controls.NewData
Forms!OrderForm.ctlSubForm!NewData

EjemploExample

En el ejemplo siguiente se muestra cómo usar los controles TextBox para proporcionar criterios de fecha en una consulta.The following example shows how to use TextBox controls to supply date criteria for a query.

Private Sub cmdSearch_Click()

   Dim db As DAO.Database
   Dim qd As QueryDef
   Dim vWhere As Variant

   Set db = CurrentDb()

   On Error Resume Next
   db.QueryDefs.Delete "Query1"
   On Error GoTo 0

   vWhere = Null

   vWhere = vWhere & " AND [PayeeID]=" + Me.cboPayeeID

   If Nz(Me.txtEndDate, "") <> "" And Nz(Me.txtStartDate, "") <> "" Then
      vWhere = vWhere & " AND [RefundProcessed] Between #" & _
      Me.txtStartDate & "# AND #" & Me.txtEndDate & "#"
   Else
      If Nz(Me.txtEndDate, "") = "" And Nz(Me.txtStartDate, "") <> "" Then
         vWhere = vWhere & " AND [RefundProcessed]>=#" _
                  + Me.txtStartDate & "#"
      Else
         If Nz(Me.txtEndDate, "") <> "" And Nz(Me.txtStartDate, "") = "" Then
            vWhere = vWhere & " AND [RefundProcessed] <=#" _
                     + Me.txtEndDate & "#"
      End If
     End If
   End If

   If Nz(vWhere, "") = "" Then
      MsgBox "There are no search criteria selected." & vbCrLf & vbCrLf & _
             "Search Cancelled.", vbInformation, "Search Canceled."
   Else
      Set qd = db.CreateQueryDef("Query1", "SELECT * FROM tblRefundData? & _
               " WHERE " & Mid(vWhere, 6))
      db.Close
      Set db = Nothing

      DoCmd.OpenQuery "Query1", acViewNormal, acReadOnly
   End If
End Sub

En el siguiente ejemplo, se muestra cómo usar el evento BeforeUpdate de un formulario para requerir que se especifique un valor en un control cuando otro control también tiene datos.The following example shows how to use the BeforeUpdate event of a form to require that a value be entered into one control when another control also has data.

Private Sub Form_BeforeUpdate(Cancel As Integer)
If (IsNull(Me.FieldOne)) Or (Me.FieldOne.Value =  "") Then
    ' No action required
Else
    If (IsNull(Me.FieldTwo)) or (Me.FieldTwo.Value = "") Then
        MsgBox "You must provide data for field 'FieldTwo', " & _
            "if a value is entered in FieldOne", _
            vbOKOnly, "Required Field"
        Me.FieldTwo.SetFocus
        Cancel = True
        Exit Sub
    End If
End If

End Sub

En el ejemplo siguiente se muestra cómo usar la propiedad OpenArgs para evitar que un formulario se abra desde el panel de navegación.The following example shows how to use the OpenArgs property to prevent a form from being opened from the navigation pane.

Private Sub Form_Open(Cancel As Integer)

If Me.OpenArgs() <> "Valid User" Then
    MsgBox "You are not authorized to use this form!", _
        vbExclamation + vbOKOnly, "Invalid Access"
    Cancel = True
End If
End Sub

En el ejemplo siguiente, se ve cómo usar el argumento WhereCondition del método OpenForm para filtrar los registros que se muestran en un formulario cuando se abre.The following example shows how to use the WhereCondition argument of the OpenForm method to filter the records displayed on a form as it is opened.

Private Sub cmdShowOrders_Click()
If Not Me.NewRecord Then
    DoCmd.OpenForm "frmOrder", _
        WhereCondition:="CustomerID=" & Me.txtCustomerID
End If
End Sub

EventosEvents

MétodosMethods

PropiedadesProperties

Vea tambiénSee also

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.