Form-Objekt (Access)

Ein Form-Objekt verweist auf ein bestimmtes Microsoft Access-Formular.

Bemerkungen

Ein Form-Objekt ist ein Element der Sammlung Forms, einer Sammlung aller momentan geöffneten Formulare. Die einzelnen Formulare in der Forms -Auflistung werden durch einen bei Null beginnenden Index nummeriert. Verweisen Sie auf einzelne Form-Objekte in der Forms-Auflistung über den Formularnamen oder über den Index des Formulars innerhalb der Auflistung.

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. Enthält der Formularname Leerzeichen, so muss der Name in eckigen Klammern ([ ]) stehen.

Syntax Beispiel
AllForms!formname AllForms!OrderForm
AllForms![form name] AllForms![Order Form]
AllForms("formname") AllForms("OrderForm")
AllForms(index) AllForms(0)

Jedes Form-Objekt verfügt über eine Controls-Auflistung, die alle Steuerelemente des Formulars enthält. Verweisen Sie auf ein Steuerelement in einem Formular durch eine implizite oder explizite Referenz auf die Controls-Auflistung. Ihr Code wird schneller ausgeführt, wenn Sie implizit auf die Controls-Sammlung verweisen. Die folgenden Beispiele zeigen zwei Möglichkeiten, wie Sie auf das Steuerelement NewData im Formular OrderForm verweisen.

 ' 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.

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

Beispiel

Das folgende Beispiel zeigt, wie Sie die TextBox-Steuerelemente verwenden, Datumskriterien für eine Abfrage bereitzustellen.

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.

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.

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.

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

Ereignisse

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.