Recordset-Eigenschaft

Wichtig :  Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: hier.

Betrifft

ComboBox-Objekt

Form-Objekt

ListBox-Objekt

Report-Objekt

Legt ein ADO-Recordset- oder DAO-Recordset-Objekt fest, das die Datenherkunft des angegebenen Formulars, Berichts, Listen- oder Kombinationsfelds darstellt, oder gibt dieses zurück. Lese-/Schreibzugriff.

Ausdruck.Recordset

Ausdruck Erforderlich. Ein Ausdruck, der eines der Objekte aus der Liste Betrifft zurückgibt.

Hinweise

Die Recordset-Eigenschaft gibt das Datensatzgruppenobjekt zurück, das die innerhalb eines Formulars, Berichts, Listen- oder Kombinationsfelds durchsuchten Daten liefert. Basiert ein Formular beispielsweise auf einer Abfrage, entspricht das Verweisen auf die Recordset-Eigenschaft dem Klonen eines Recordset-Objekts mittels derselben Abfrage. Wenn allerdings geändert wird, welcher Datensatz in der von der Recordset-Eigenschaft des Formulars zurückgegebenen Datensatzgruppe aktuell ist, wird – im Gegensatz zur Verwendung der RecordsetClose-Eigenschaft – auch der aktuelle Datensatz des Formulars festgelegt.

Diese Eigenschaft steht nur von Visual Basic for Applications (VBA)-Code verwenden.

Das Lese-/Schreibverhalten der Recordset-Eigenschaft wird vom Typ der Datensatzgruppe (ADO oder DAO) sowie vom Typ der Daten (Access oder SQL) bestimmt, die in der Datensatzgruppe enthalten sind, welche von der Eigenschaft identifiziert wurde.

Recordset Typ

Auf SQL-Daten basierend

Auf Access-Daten basierend

ADO

Lese-/Schreibzugriff

Lese-/Schreibzugriff

DAO

n/v

Lese-/Schreibzugriff

Im folgenden Beispiel werden ein Formular sowie eine Datensatzgruppe geöffnet. Anschließend wird das Formular an die Datensatzgruppe 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

Verwenden Sie die Recordset-Eigenschaft für folgende Zwecke:

  • Binden mehrerer Formulare an einen allgemeinen Datensatz. Dies erlaubt das Synchronisieren mehrerer Formulare. Beispiel:

    Set Me.Recordset = Forms!Form1.Recordset

  • Verwenden von Methoden mit dem Recordset-Objekt, die nicht unmittelbar in Formularen unterstützt werden. Beispielsweise können Sie zum Suchen eines bestimmten Datensatzes in einem benutzerdefinierten Dialogfeld die Recordset-Eigenschaft zusammen mit der Find-Methode von ADO oder DAO verwenden.

  • Umbrechen einer Transaktion (die zurückgesetzt werden kann) an einer Reihe von Bearbeitungen, die sich auf mehrere Formularen auswirken.

Das Ändern der Recordset-Eigenschaft eines Formulars kann auch zu einer Änderung der Eigenschaften RecordSource, RecordsetType und RecordLocks führen. Auch können einige datenbezogene Eigenschaften außer Kraft gesetzt werden, beispielsweise die Eigenschaften Filter, FilterOn, OrderBy und OrderByOn.

Der Aufruf der Requery-Methode für die Datensatzgruppe eines Formulars (beispielsweise Forms(0).Recordset.Requery) kann dazu führen, dass die Bindung des Formulars aufgehoben wird. Um die Daten in einem an eine Datensatzgruppe gebundenen Formular zu aktualisieren, legen Sie die RecordSource-Eigenschaft des Formulars auf das Formular selbst fest (Forms(0).RecordSource = Forms(0).RecordSource).

Wenn ein Formular an einen Datensatz gebunden ist und Sie den Befehl für den formularbasierten Filter verwenden, wird eine Fehlermeldung angezeigt.

Beispiel

Im folgenden Beispiel wird die Recordset-Eigenschaft verwendet, um eine neue Kopie des Recordset-Objekts aus dem aktuellen Formular zu erstellen. Anschließend werden die Namen der Felder in das Testfenster 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 eine Datensatzgruppe mit dem aktuellen Datensatz des Formulars zu synchronisieren. Beim Auswählen eines Firmennamens aus einem Kombinationsfeld wird die FindFirst-Methode zum Suchen des Datensatzes der Firma verwendet. Anschließend wird der gefundene Datensatz im Formular angezeigt.

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

Der folgende Code hilft beim Ermitteln der von der Recordset-Eigenschaft unter verschiedensten Bedingungen zurückgegebenen Datensatzgruppentypen.

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

Hinweis : Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

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.

×