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