Se aplică laAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.