Objeto Form (Access)Form object (Access)

Um objeto Form refere-se a um formulário do Microsoft Access em particular.A Form object refers to a particular Microsoft Access form.

ComentáriosRemarks

Um objeto Form é um membro da coleção Forms, que é uma coleção de todos os formulários abertos no momento.A Form object is a member of the Forms collection, which is a collection of all currently open forms. Na coleção Forms, os formulários individuais são indexados a partir do zero.Within the Forms collection, individual forms are indexed beginning with zero. Você pode fazer referência a um objeto Form individual na coleção Forms ao fazer referência ao formulário por nome ou ao fazer referência a seu índice na coleção.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.

Se quiser se referir a um formulário específico na coleção Forms, será melhor fazer referência ao formulário por nome porque o índice de coleção de um formulário pode ser alterado.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. Se o nome do formulário incluir um espaço, o nome deverá ficar entre colchetes ([ ]).If the form name includes a space, the name must be surrounded by brackets ([ ]).

SintaxeSyntax ExemploExample
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 tem uma coleçãoControls, que contém todos os controles do formulário.Each Form object has a Controls collection, which contains all controls on the form. Você pode fazer referência a um controle em um formulário ao fazer referência de forma implícita ou explícita à coleção Controls.You can refer to a control on a form either by implicitly or explicitly referring to the Controls collection. Seu código será mais rápido se você fizer referencia à coleção Controls implicitamente.Your code will be faster if you refer to the Controls collection implicitly. Os exemplos a seguir mostram duas das maneiras para fazer referência a um controle chamado NewData no formulário chamado 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

Os próximos dois exemplos mostram como você poderia se referir a um controle chamado NewData em um subformulário ctlSubForm contido no formulário chamado 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

ExemploExample

O exemplo a seguir mostra como usar os controles TextBox para fornecer critérios de data para uma 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

O exemplo a seguir mostra como usar o evento BeforeUpdate de um formulário para exigir que um valor seja inserido em um controle quando outro controle também tem dados.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

O exemplo a seguir mostra como usar a propriedade OpenArgs para impedir que um formulário seja aberto a partir do painel de navegação.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

O exemplo a seguir mostra como usar o argumento WhereCondition do método OpenForm para filtrar os registros exibidos em um formulário quando ele é aberto.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

PropriedadesProperties

Confira tambémSee also

Suporte e comentáriosSupport and feedback

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação?Have questions or feedback about Office VBA or this documentation? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.