DotyczyAccess dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 Argument wymagany. Wyrażenie zwracające 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    NextEnd 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.CloseEnd 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 IfEnd Sub

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.