Odnosi se na
|
Objekat „ComboBox“ |
|
Objekat obrasca |
|
Objekat „ListBox“ |
|
Objekat izveštaja |
Daje ili postavlja ADO Recordset ili DAO Recordset objekat koji predstavlja izvor zapisa za navedeni obrazac, izveštaj, okvir sa listom opcija ili kontrolu kombinovanog okvira. Čitanje/pisanje.
izraz.Recordset
expression Obavezno. Izraz koji daje jedan od objekata sa liste „Odnosi se na“.
Primedbe
Svojstvo Recordset daje objekat skupa zapisa koji pruža podatke koji se pregledaju u obrascu, izveštaju, okviru sa listom opcija ili kontroli kombinovanog okvira. Na primer, ako je obrazac zasnovan na upitu, upućivanje na svojstvo Recordset ekvivalentno je kloniranju objekta Recordset pomoću istog upita. Međutim, za razliku od korišćenja svojstva RecordsetClone, promena toga koji je zapis trenutni u skupu zapisa koji daje svojstvo Recordset obrasca postavlja i trenutni zapis obrasca.
Ovo svojstvo je dostupno samo kada koristite Visual Basic for Applications (VBA) kôd.
Ponašanje čitanja/pisanja svojstva Recordset određuju tip skupa zapisa (ADO ili DAO) i tip podataka (Access ili SQL) koji se nalaze u skupu zapisa koji identifikuje svojstvo.
|
Tip skupa zapisa |
Na osnovu SQL podataka |
Na osnovu Access podataka |
|
ADO |
Čitanje/pisanje |
Čitanje/pisanje |
|
DAO |
Nije primenljivo |
Čitanje/pisanje |
Sledeći primer otvara obrazac, otvara skup zapisa, a zatim povezuje obrazac sa skupom zapisa tako što postavlja svojstvo Recordset obrasca na novi napravljeni objekat 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
Koristite svojstvo Recordset:
-
Da biste povezali više obrazaca u zajednički skup podataka. To omogućava sinhronizaciju više obrazaca. Na primer,
Set Me.Recordset = Forms!Form1.Recordset
-
Da biste koristili metode koji nisu direktno podržani u obrascima uz objekat Recordset. Na primer, svojstvo Recordset možete da koristite uz metode ADO Pronalaženje ili DAO Pronalaženje u prilagođenom dijalogu za pronalaženje zapisa.
-
Da biste završili transakciju (koja može da se vrati) nad skupom uređivanja koja utiču na više obrazaca.
Promena svojstva Recordset obrasca može da promeni i svojstva RecordSource, RecordsetType i RecordLocks. Neka svojstva povezana sa podacima takođe mogu da se zamene, na primer svojstva Filter, FilterOn, OrderBy i OrderByOn.
Pozivanje metoda Requery skupa zapisa obrasca (na primer, Forms(0).Recordset.Requery) može da izazove da obrazac postane nepovezan. Da biste osvežili podatke u povezanom skupu zapisa, postavite svojstvo RecordSource obrasca na njega samog (Forms(0).RecordSource = Forms(0).RecordSource).
Kada se obrazac poveže sa skupom zapisa, dolazi do greške ako koristite komandu „Filtriraj po obrascu“.
Primer
Sledeći primer koristi svojstvo Recordset za pravljenje nove kopije objekta Recordset od trenutnog obrasca, a zatim štampa imena polja u prozoru „Otklanjanje greš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
Sledeći primer koristi svojstvo Recordset i objekat Recordset za sinhronizovanje skupa zapisa sa trenutnim zapisom obrasca. Kada se iz kombinovanog okvira izabere ime preduzeća, koristi se metod FindFirst za pronalaženje zapisa za to preduzeće, usled čega obrazac 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
Sledeći kôd doprinosi određivanju toga koji tip skupa zapisa daje svojstvo Recordset u različitim uslovima.
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