Właściwość Recordset

Dotyczy

Obiekt ComboBox

Obiekt Form

Obiekt ListBox

Obiekt Report

Pozwala zwrócić lub ustawić obiekt Recordset (Zestaw rekordów) modelu ADO lub obiekt Recordset (Zestaw rekordów) modelu DAO reprezentujący źródło rekordów dla określonego formularza, raportu, kontrolki pola listy lub kontrolki pola kombi. Właściwość do odczytu i zapisu.

wyrażenie.Recordset

wyrażenie — wymagane. Wyrażenie, które zwraca jeden z obiektów na liście Dotyczy.

Spostrzeżenia

Właściwość Recordset (Zestaw rekordów) zwraca zestaw rekordów, który dostarcza dane przeglądane w formularzu, raporcie, kontrolce pola listy lub kontrolce pola kombi. Jeśli na przykład formularz jest oparty na zapytaniu, odwołanie się do właściwości Recordset (Zestaw rekordów) jest równoznaczne z klonowaniem obiektu Recordset (Zestaw rekordów) przy użyciu tego samego zapytania. Jednak w przeciwieństwie do użycia właściwości RecordsetClone, zmiana tego, który rekord jest rekordem bieżącym w zestawie rekordów zwracanym przez właściwość formularza Recordset (Zestaw rekordów), także ustawia bieżący rekord formularza.

Ta właściwość jest dostępna tylko przy użyciu kodu języka Visual Basic for Applications (VBA).

Funkcja odczytu/zapisu właściwości Recordset (Zestaw rekordów) jest określona przez typ zestawu rekordów (model ADO lub DAO) i typ danych (Access lub SQL) zawartych w zestawie rekordów zidentyfikowanych przez właściwość.

Typ zestawu rekordów

W oparciu o dane SQL

W oparciu o dane Access

ADO

Właściwość do odczytu i zapisu

Właściwość do odczytu i zapisu

DAO

Nie dotyczy

Właściwość do odczytu i zapisu

W poniższym przykładzie zostaje otwarty formularz oraz zestaw rekordów, a następnie formularz zostaje powiązany z zestawem rekordów poprzez ustawienie właściwości formularza Recordset (Zestaw rekordów) na nowo utworzony obiekt Recordset (Zestaw rekordów).

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

Użyj właściwości Recordset (Zestaw rekordów), aby:

  • Powiązać wiele formularzy we wspólnym zestawie danych. Pozwala to na synchronizację wielu formularzy. Na przykład:

    Set Me.Recordset = Forms!Form1.Recordset

  • Używać metod wykorzystujących obiekt Recordset (Zestaw rekordów), które nie są bezpośrednio obsługiwane w formularzach. Na przykład możesz wykorzystać właściwość Recordset (Zestaw rekordów) w metodzie Find modelu ADO lub metodzie Find modelu DAO w niestandardowym oknie dialogowym do wyszukiwania rekordów.

  • Zawinąć transakcję (która może być wycofana) wokół zestawu zmian mających wpływ na wiele formularzy.

Zmiana właściwości formularza Recordset (Zestaw rekordów) może także zmienić właściwości RecordSource (ŹródłoRekordów), RecordsetType (TypZestawuRekordów) oraz RecordLocks (BlokowanieRekordów). Ponadto niektóre właściwości powiązane z danymi mogą zostać zastąpione, na przykład właściwości Filter, FilterOn, OrderBy oraz OrderByOn.

Wywołanie metody Requery zestawu rekordów formularza (na przykład Forms(0).Recordset.Requery) może powodować, że formularz stanie się niepowiązany. Aby odświeżyć dane w formularzu powiązanym z zestawem rekordów, ustaw właściwość RecordSource (ŹródłoRekordów) formularza na nią samą (Forms(0).RecordSource = Forms(0).RecordSource).

Jeśli formularz jest powiązany z zestawem rekordów, w przypadku korzystania z właściwości Filter za pomocą polecenia Formularz wystąpi błąd.

Przykład

W poniższym przykładzie użyto właściwości Recordset (Zestaw rekordów) w celu utworzenia nowej kopii obiektu Recordset (Zestaw rekordów) z bieżącego formularza, a następnie wydrukowano nazwy pól w oknie Debugowanie.

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

W kolejnym przykładzie użyto właściwości Recordset (Zestaw rekordów) i obiektu Recordset (Zestaw rekordów) w celu zsynchronizowania zestawu rekordów z bieżącym rekordem formularza. Po zaznaczeniu nazwy firmy z pola kombi wykorzystuje się metodę FindFirst w celu zlokalizowania rekordu dla tej firmy, co powoduje, że formularz wyświetla znaleziony rekord.

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

Poniższy kod pomaga określić, jaki typ zestawu rekordów jest zwracany przez właściwość Recordset (Zestaw rekordów) w różnych warunkach.

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
Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×