Svojstvo Recordset

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

izraz je obavezan. Izraz koji vraća jedan od objekata s popisa Odnosi se na sljedeće.

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
Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×