ListBox. Recordset-Eigenschaft (Access)ListBox.Recordset property (Access)

Zurückgeben oder Festlegen der ADO- Recordset -oder DAO- Recordset -Objekt, das die Datensatzquelle für das angegebene Objekt darstellt.Returns or sets the ADO Recordset or DAO Recordset object that represents the record source for the specified object. Object-Wert mit Lese-/Schreibzugriff.Read/write Object.

SyntaxSyntax

Ausdruck. Recordset -Objektexpression.Recordset

Ausdruck Eine Variable, die ein ListBox -Objekt darstellt.expression A variable that represents a ListBox object.

HinweiseRemarks

Die Recordset -Eigenschaft gibt das Recordset -Objekt zurück, das die Daten enthält, die in einem Formular, einem Bericht, einem Listenfeld-Steuerelement oder einem Kombinationsfeld-Steuerelement durchsucht werden.The Recordset property returns the Recordset object that provides the data being browsed in a form, report, list box control, or combo box control. Basiert ein Formular z. B. auf einer Abfrage, so entspricht ein Verweis auf die Recordset-Eigenschaft dem Kopieren eines Recordset-Objekts unter Verwendung derselben Abfrage.If a form is based on a query, for example, referring to the Recordset property is the equivalent of cloning a Recordset object by using the same query. Im Gegensatz zur Verwendung der RecordsetClone -Eigenschaft wird durch das Ändern des aktuellen Record-Objekts im Recordset-Objekt, das von der Recordset -Eigenschaft des Formulars zurückgegeben wird, auch der aktuelle Datensatz des Formulars festgelegt.However, unlike using the RecordsetClone property, changing which record is current in the recordset returned by the form's Recordset property also sets the current record of the form.

Das Lese-/Schreibverhalten der Recordset-Eigenschaft wird durch den Typ des Recordsets (ADO oder DAO) und den Typ der Daten (Access oder SQL) bestimmt, die in dem durch die Eigenschaft identifizierten Recordset enthalten sind.The read/write behavior of the Recordset property is determined by the type of recordset (ADO or DAO) and the type of data (Access or SQL) contained in the recordset identified by the property.

RecordsettypRecordset type Basierend auf SQL-DatenBased on SQL data Basierend auf Daten im Access-DatenbankmodulBased on data stored by the Access database engine
ADOADO Lesen/SchreibenRead/write Lesen/SchreibenRead/write
DAODAO n/vN/A Lesen/SchreibenRead/write

Das folgende Beispiel öffnet ein Formular, öffnet ein Recordset und bindet dann das Formular an das Recordset, indem die RecordsetRecordset-Eigenschaft des Formulars auf das neu erstellte Recordset-Objekt festgelegt wird.The following example opens a form, opens a recordset, and then binds the form to the recordset by setting the form's Recordset property to the newly created Recordset object.

Global rstSuppliers As ADODB.Recordset 
Sub MakeRW()      
    DoCmd.OpenForm "Suppliers" 
    Set rstSuppliers = New ADODB.Recordset 
    rstSuppliers.CursorLocation = adUseClient 
    rstSuppliers.Open "Select * From Suppliers", _ 
         CurrentProject.Connection, adOpenKeyset, adLockOptimistic      
    Set Forms("Suppliers").Recordset = rstSuppliers 
End Sub

Verwenden Sie die Recordset -Eigenschaft für Folgendes:Use the Recordset property to:

  • Verwenden Sie Methoden mit dem Recordset -Objekt, die nicht direkt für Formulare unterstützt werden.Use methods with the Recordset object that aren't directly supported on forms. Zum Beispiel können Sie die Recordset -Eigenschaft verwenden, wenn Sie mit der ADO-Methode Find oder der DAO-Methode Find einen Datensatz in einem benutzerdefinierten Dialogfeld suchen.For example, you can use the Recordset property with the ADO Find or DAO Find methods in a custom dialog for finding a record.

  • Umbrechen einer Transaktion (die rückgängig gemacht werden kann) um eine Gruppe von Bearbeitungen, die mehrere Formulare betreffen.Wrap a transaction (which can be rolled back) around a set of edits that affect multiple forms.

    Änderungen an der RecordsetRecordset-Eigenschaft eines Formulars wirken sich auch auf die Eigenschaften RecordSourceRecordSource, RecordsetTypeRecordsetType und RecordLocksRecordLocks aus.Changing a form's Recordset property may also change the RecordSource, RecordsetType, and RecordLocks properties. Außerdem werden eventuell einige datenbezogene Eigenschaften außer Kraft gesetzt; so z. B. die Eigenschaften FilterFilter, FilterOnFilterOn, OrderByOrderBy und OrderByOnOrderByOn.Also, some data-related properties may be overridden, for example, the Filter, FilterOn, OrderBy, and OrderByOn properties.

    Das Aufrufen **** der Requery-Methode des Recordset-Objekts eines Formulars Forms(0).Recordset.Requery(beispielsweise) kann dazu führen, dass das Formular ungebunden wird.Calling the Requery method of a form's recordset (for example, Forms(0).Recordset.Requery) can cause the form to become unbound. Wenn Sie die Daten in einem an ein Recordset-Objekt gebundenen Formular **** aktualisieren möchten, legen Sie die Datenherkunft Forms(0).RecordSource = Forms(0).RecordSource-Eigenschaft des Formulars auf sich selbst fest:.To refresh the data in a form bound to a recordset, set the RecordSource property of the form to itself: Forms(0).RecordSource = Forms(0).RecordSource.

  • Binden mehrerer Formulare an ein allgemeines DataSet.Bind multiple forms to a common data set. Dadurch können mehrere Formulare synchronisiert werden.This allows synchronization of multiple forms. Zum Beispiel:For example:

      Set Me.Recordset = Forms!Form1.Recordset
    

Hinweis

Wenn ein Formular an ein Recordset-Objekt gebunden ist, tritt ein Fehler auf, wenn Sie den Befehl Formularbasierter Filter verwenden.When a form is bound to a recordset, an error occurs if you use the Filter by Form command.

BeispielExample

Im folgenden Beispiel wird die RecordsetRecordset-Eigenschaft verwendet, um eine Kopie des Recordset-Objekts aus dem aktuellen Formular zu erzeugen und dann die Feldnamen im Testfenster auszugeben.The following example uses the Recordset property to create a new copy of the Recordset object from the current form and then prints the names of the fields in the Debug window.

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 folgenden Beispiel wird die Recordset -Eigenschaft und das Recordset -Objekt zum Synchronisieren eines Recordset-Objekts mit dem aktuellen Datensatz des Formulars verwendet.The following example uses the Recordset property and the Recordset object to synchronize a recordset with the form's current record. Wenn ein Firmenname aus einem Kombinationsfeld ausgewählt wird, wird die FindFirst-Methode verwendet, um den Datensatz für diese Firma zu suchen und das Formular den gefundenen Datensatz anzeigen zu lassen.When a company name is selected from a combo box, the FindFirst method is used to locate the record for that company, causing the form to display the found record.

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 bei der Bestimmung, welcher Recordsettyp bei unterschiedlichen Bedingungen von der Recordset-Eigenschaft zurückgegeben wird.The following code helps to determine what type of recordset is returned by the Recordset property under different conditions.

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

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.