Se aplică la
Obiectul ComboBox |
Obiectul Form |
Obiectul ListBox |
Obiectul Report |
Returnează sau setează obiectul ADO Recordset sau DAO Recordset reprezentând o sursă de înregistrări pentru formularul, raportul, controlul casetă listă sau controlul casetă combo specificat. Citire/scriere.
expresie.Recordset
expresie Obligatoriu. O expresie care returnează unul dintre obiectele din lista Se aplică la.
Observații
Proprietatea Recordset returnează obiectul set de înregistrări care furnizează datele parcurse într-un formular, raport, control casetă listă sau control casetă combo. De exemplu, dacă un formular este bazat pe o interogare, referirea la proprietatea Recordset este echivalentă cu clonarea unui obiect Recordset utilizând aceeași interogare. Totuși, spre deosebire de utilizarea proprietății RecordsetClone, modificarea înregistrării care este curentă în setul de înregistrări returnat de proprietatea Recordset a formularului setează și înregistrarea curentă a formularului.
Această proprietate este disponibilă doar utilizând cod Visual Basic for Applications (VBA).
Comportamentul de citire/scriere al proprietății Recordset este determinat de tipul de set de înregistrări (ADO sau DAO) și de tipul de date (Access sau SQL) cuprinse în setul de înregistrări identificat de proprietate.
Tipul de set de înregistrări |
Bazat pe date SQL |
Bazat pe date Access |
ADO |
Citire/scriere |
Citire/scriere |
DAO |
Indisponibil |
Citire/scriere |
Următorul exemplu deschide un formular, deschide un set de înregistrări și leagă apoi formularul la setul de înregistrări setând proprietatea Recordset a formularului la obiectul Recordset nou creat.
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
Utilizați proprietatea Recordset pentru:
-
A lega mai multe formulare la un set de date comun. Acest lucru permite sincronizarea mai multor formulare. De exemplu,
Set Me.Recordset = Forms!Form1.Recordset
-
A utiliza metode care nu sunt acceptate în mod direct în formulare cu obiectul Recordset. De exemplu, puteți utiliza proprietatea Recordset cu metoda ADO Find sau cu metoda DAO Find într-un dialog particularizat, pentru a găsi o înregistrare.
-
A încadra o tranzacție (asupra căreia se poate reveni) în jurul un set de editări care afectează mai multe formulare.
Modificarea proprietății Recordset a unui formular poate modifica și proprietățile RecordSource, RecordsetType și RecordLocks. De asemenea, unele proprietăți legate de date pot fi suprascrise, de exemplu, proprietățile Filter, FilterOn, OrderBy și OrderByOn.
Apelarea metodei Requery a unui set de înregistrări al unui formular (de exemplu, Forms(0).Recordset.Requery) poate cauza ca formularul să devină nelegat. Pentru a reîmprospăta datele dintr-un formular legat la un set de înregistrări, setați proprietatea RecordSource a formularului la ea însăși (Forms(0).RecordSource = Forms(0).RecordSource).
Atunci când un formular este legat la un set de înregistrări, se produce o eroare dacă utilizați comanda Filtrare după formular.
Exemplu
Următorul exemplu utilizează proprietatea RecordSet pentru a crea o copie nouă a obiectului Recordset din formularul curent și apoi imprimă numele câmpurilor din fereastra Depanare.
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
Următorul exemplu utilizează proprietatea Recordset și obiectul Recordset pentru a sincroniza un set de înregistrări cu înregistrarea curentă a formularului. Atunci când este selectat un nume de firmă dintr-o casetă combo, se utilizează metoda FindFirst pentru a găsi înregistrarea pentru acea firmă, determinând ca formularul să afișeze înregistrarea găsită.
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
Următorul cod vă ajută să determinați ce tip de set de înregistrări este returnat de proprietatea Recordset în situații diferite.
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