Recordset-Eigenschaft

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
Next
End 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.Close
End 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 If
End Sub
Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×