Form-Objekt (Access)Form object (Access)

Ein Form-Objekt verweist auf ein bestimmtes Microsoft Access-Formular.A Form object refers to a particular Microsoft Access form.

BemerkungenRemarks

Ein Form-Objekt ist ein Element der Sammlung Forms, einer Sammlung aller momentan geöffneten Formulare.A Form object is a member of the Forms collection, which is a collection of all currently open forms. Die einzelnen Formulare in der Forms -Auflistung werden durch einen bei Null beginnenden Index nummeriert.Within the Forms collection, individual forms are indexed beginning with zero. Sie verweisen auf einzelne Form -Objekte in der Forms -Auflistung über den Formularnamen oder über den Index des Formulars innerhalb der Auflistung.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.

Verwenden Sie bei Verweisen auf ein bestimmtes "Form"-Objekt in der Forms -Auflistung vorzugsweise den Formularnamen, da sich der Formularindex in der Auflistung möglicherweise ändert.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. Enthält der Formularname Leerzeichen, so muss der Name in eckigen Klammern ([ ]) stehen.If the form name includes a space, the name must be surrounded by brackets ([ ]).

SyntaxSyntax BeispielExample
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)

Jedes Form-Objekt verfügt über eine Controls-Auflistung, die alle Steuerelemente des Formulars enthält.Each Form object has a Controls collection, which contains all controls on the form. Sie verweisen auf ein Steuerelement in einem Formular durch eine implizite oder explizite Referenz auf die Controls-Auflistung.You can refer to a control on a form either by implicitly or explicitly referring to the Controls collection. Ihr Code wird schneller ausgeführt, wenn Sie implizit auf die Controls-Sammlung verweisen.Your code will be faster if you refer to the Controls collection implicitly. Die folgenden Beispiele zeigen zwei Möglichkeiten, wie Sie auf das Steuerelement NewData im Formular OrderForm verweisen.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

Die beiden folgenden Beispiele zeigen, wie Sie auf das Steuerelement NewData im Unterformular ctlSubForm des Formulars OrderForm verweisen können.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

BeispielExample

Das folgende Beispiel zeigt, wie Sie die TextBox-Steuerelemente verwenden, Datumskriterien für eine Abfrage bereitzustellen.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

In diesem Beispiel wird das BeforeUpdate-Ereignis eines Formulars dazu verwendet, die Angabe eines Wertes in einem Steuerelement zu erfordern, wenn ein anderes Steuerelement ebenfalls Daten enthält.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

Das folgende Beispiel zeigt, wie Sie die Eigenschaft OpenArgs verwenden, um zu verhindern, dass ein Formular im Navigationsbereich geöffnet werden kann.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

Das folgende Beispiel zeigt, wie Sie das Argument WhereCondition der Methode OpenForm verwenden, um die in einem Formular angezeigten Datensätze zu filtern, während es geöffnet wird.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

EreignisseEvents

MethodenMethods

EigenschaftenProperties

Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.