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    NextEnd 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.CloseEnd 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 IfEnd Sub

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.