Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Gilt für:

ComboBox-Objekt

Form-Objekt

ListBox-Objekt

Report-Objekt

Hiermit wird das ADO-Recordset- oder DAO-Recordset-Objekt zurückgegeben oder festgelegt, das die Datenherkunft für das angegebene Formular-, Berichts-, Listenfeld- oder Kombinationsfeld-Steuerelement darstellt. Lese-/Schreibzugriff.

Ausdruck.Recordset

Ausdruck Erforderlich. Ein Ausdruck, der eines der Objekte in der Liste "Gilt für" zurückgibt.

Hinweise

Die Recordset-Eigenschaft gibt das Recordset-Objekt zurück, das die in einem Formular, Bericht, Listenfeld-Steuerelement oder Kombinationsfeld-Steuerelement abgerufenen Daten bereitstellt. Wenn ein Formular auf einer Abfrage basiert, entspricht z. B. der Verweis auf die Recordset-Eigenschaft dem Klonen eines Recordset-Objekts mit derselben Abfrage. Anders als bei Verwendung der RecordsetClone-Eigenschaft wird jedoch durch die Änderung des aktuellen Datensatzes im Recordset, das von der Recordset-Eigenschaft des Formulars zurückgegeben wird, auch der aktuelle Datensatz des Formulars festgelegt.

Diese Eigenschaft ist nur durch Verwenden von VBA-Code (Visual Basic for Applications) verfügbar.

Das Lese-/Schreibverhalten der Recordset-Eigenschaft wird vom Recordsettyp (ADO oder DAO) und von den Daten (Access oder SQL) bestimmt, die in dem durch die Eigenschaft identifizierten Recordset enthalten sind.

Recordset typ

Basierend auf SQL-Daten

Basierend auf Access-Daten

ADO

Lesen/Schreiben

Lesen/Schreiben

DAO

N/A

Lesen/Schreiben

Im folgenden Beispiel wird ein Formular geöffnet, ein Recordset geöffnet und dann das Formular an das Recordset gebunden, indem die Recordset-Eigenschaft des Formulars auf das neu erstellte Recordset-Objekt festgelegt wird.

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

Sie können die Recordset-Eigenschaft für folgende Zwecke verwenden:

  • Zum Binden mehrerer Formulare an eine gemeinsame Datengruppe. Dies ermöglicht die Synchronisierung mehrerer Formulare. Beispiel:

    Set Me.Recordset = Forms!Form1.Recordset

  • Zum Verwenden von Methoden mit dem Recordset-Objekt, die in Formularen nicht direkt unterstützt werden. Sie können z. B. die Recordset-Eigenschaft mit der Find-Methode (ADO) oder der Find-Methode (DAO) in einem benutzerdefinierten Dialogfeld zum Suchen nach einem Datensatz verwenden.

  • Zum Umbrechen einer Transaktion (für die ein Rollback ausgeführt werden kann) um eine Reihe von Änderungen, die sich auf mehrere Formulare auswirken.

Wenn Sie die Recordset-Eigenschaft eines Formulars ändern, werden möglicherweise auch die Eigenschaften Datensatzquelle, Recordsettyp und DatensätzeSperren geändert. Außerdem werden möglicherweise einige datenbezogene Eigenschaften außer Kraft gesetzt, z. B. die Eigenschaften Filter, FilterAktiv, SortiertNach und SortierungAktiv.

Das Aufrufen der AktualisierenDaten-Methode des Recordsets eines Formulars (z. B. Forms(0).Recordset.Requery) kann dazu führen, dass das Formular nicht mehr gebunden ist. Wenn Sie die Daten in einem Formular aktualisieren möchten, das an ein Recordset gebunden ist, legen Sie die Datensatzquelle-Eigenschaft des Formulars auf sich selbst fest (Forms(0).RecordSource = Forms(0).RecordSource).

Wenn ein Formular an ein Recordset gebunden ist, tritt bei Verwendung des Befehls "Formularbasierter Filter" ein Fehler auf.

Beispiel

Im folgenden Beispiel wird die Recordset-Eigenschaft verwendet, um eine neue Kopie des Recordset-Objekts aus dem aktuellen Formular zu erstellen, und dann werden die Namen der Felder im Fenster "Debuggen" gedruckt.

Sub Print_Field_Names()    Dim rst As DAO.Recordset, intI As Integer    Dim fld As Field    Set rst = Me.Recordset    For Each fld in rst.Fields        ' Print field names.        Debug.Print fld.Name    NextEnd Sub

Im nächsten Beispiel werden die Recordset-Eigenschaft und das Recordset-Objekt verwendet, um ein Recordset mit dem aktuellen Datensatz des Formulars zu synchronisieren. Beim Auswählen eines Firmennamens aus einem Kombinationsfeld wird die ZuerstFinden-Methode verwendet, um den Datensatz für das entsprechende Unternehmen zu suchen, und dann zeigt das Formular den gefundenen Datensatz an.

Sub SupplierID_AfterUpdate()    Dim rst As DAO.Recordset    Dim strSearchName As String    Set rst = Me.Recordset    strSearchName = CStr(Me!SupplierID)    rst.FindFirst "SupplierID = " & strSearchName    If rst.NoMatch Then        MsgBox "Record not found"    End If    rst.CloseEnd Sub

Mithilfe des folgenden Codes können Sie bestimmen, welcher Recordsettyp unter verschiedenen Bedingungen von der Recordset-Eigenschaft zurückgegeben wird.

Sub CheckRSType()    Dim rs as Object    Set rs=Forms(0).Recordset    If TypeOf rs Is DAO.Recordset Then        MsgBox "DAO Recordset"    ElseIf TypeOf rs is ADODB.Recordset Then        MsgBox "ADO Recordset"    End IfEnd Sub

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.