Recordset-Eigenschaft

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

In DAO kann diese Eigenschaft nicht mit ODBCDirect-Datensatzgruppentypen verwendet werden.

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 ist nur beim Verwenden von Visual Basic for Applications (VBA)-Code verfügbar.

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.

Datensatzgruppentyp

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 "Lieferanten"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Lieferanten").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.Datensatzgruppe
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Datensatz nicht gefunden"
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
Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×