Primjenjuje se na
Objekt ComboBox |
Objekt Form |
Objekt ListBox |
Objekt Report |
Vraća ili postavlja objekt ADO Recordset ili DAO Recordset koji predstavlja izvor zapisa za navedeni obrazac, izvješće, kontrolu okvira s popisom ili kontrolu kombiniranog okvira. Čitanje/pisanje.
izraz.Recordset
expression Obavezno. Izraz koji vraća jedan od objekata na popisu Primjenjuje se na.
Napomene
Svojstvo Recordset vraća objekt skupa zapisa koji daje podatke koji se pregledavaju u obrascu, izvješću, kontroli okvira s popisom ili kontroli kombiniranog okvira. Ako se, primjerice, obrazac temelji na upitu, pozivanje na svojstvo Recordset istovjetno je kloniranju objekta Recordset pomoću istog upita. No za razliku od upotrebe svojstva RecordsetClone, promjena zapisa koji je aktualan u skupu zapisa koji se vraća svojstvom Recordset obrasca također postavlja aktualni zapis za obrazac.
Svojstvo je dostupno isključivo putem koda programa Visual Basic for Applications (VBA).
Ponašanje čitanja/pisanja za svojstvo Recordset određeno je vrstom skupa zapisa (ADO ili DAO) i vrstom podataka (Access ili SQL) koje sadrži skup zapisa definiran svojstvom.
Vrsta skupa podataka |
Na temelju SQL podataka |
Na temelju podataka iz programa Access |
ADO |
Čitanje/pisanje |
Čitanje/pisanje |
DAO |
Nije dostupno |
Čitanje/pisanje |
U sljedećem se primjeru otvara obrazac, otvara se skup zapisa i zatim se obrazac veže uz skup podataka postavljanjem svojstva Recordset obrasca na novo stvoreni objekt Recordset.
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
Korištenje svojstva Recordset:
-
za vezanje većeg broja obrazaca za zajednički skup podataka. Time se omogućuje sinkronizacija većeg broja obrazaca. Na primjer:
Set Me.Recordset = Forms!Form1.Recordset
-
za korištenje metoda s objektom Recordset koje nisu izravno podržane na obrascima. Možete, primjerice, koristiti svojstvo Recordset metodama ADO Find i DAO Find u prilagođenom dijaloškom okviru za pronalaženje zapisa.
-
za prelamanje transakcija (koje se mogu povući) oko skupa uređivanja koje utječu na veći broj obrazaca.
Promjenom svojstva Recordset obrasca mogla bi se promijeniti i svojstva RecordSource, RecordsetType i RecordLocks. Ujedno bi se mogla nadjačati i neka svojstva povezana s podacima, primjerice, Filter, FilterOn, OrderBy i OrderByOn.
Pozivanje metode Requery skupa zapisa obrasca (primjerice, Forms(0).Recordset.Requery) može uzrokovati prekidanje povezivanja obrasca. Za osvježavanje podataka u obrascu koji je povezan sa skupom zapisa, postavite svojstvo RecordSource obrasca na samo sebe (Forms(0).RecordSource = Forms(0).RecordSource).
Kada je obrazac povezan sa skupom zapisa, pri korištenju naredbe Filter by Form pojavit će se pogreška.
Primjer
U sljedećem se primjeru svojstvo Recordset koristi za stvaranje nove kopije objekta Recordset iz aktualnog obrasca i zatim se ispisuju nazivi polja u prozoru za ispravljanje pogrešaka.
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
U sljedećem se primjer svojstvo Recordset i objekt Recordset koriste za sinkronizaciju skupa zapisa s aktualnim zapisom obrasca. Kada se u kombiniranom okviru odabere naziv tvrtke, za pronalaženje zapisa te tvrtke koristi se metoda FindFirst, pa se u obrascu prikazuje pronađeni zapis.
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
Uz sljedeći se kod utvrđuje koja se vrsta skupa zapisa vraća pomoću svojstva Recordset u različitim uvjetima.
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