Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Si applica a

Oggetto ComboBox

Oggetto Form

Oggetto ListBox

Oggetto Report

Restituisce o imposta l'oggetto Recordset ADO o Recordset DAO che rappresenta l'origine record per la maschera, il report, la casella di riepilogo o la casella combinata specificata. Lettura/scrittura.

espressione.Recordset

espressione Obbligatorio. Espressione che restituisce uno degli oggetti inclusi nell'elenco Si applica a.

Osservazioni

La proprietà Recordset restituisce l'oggetto recordset che fornisce i dati visualizzati in una maschera, un report, una casella di riepilogo o una casella combinata. Se una maschera è basata su una query, ad esempio, fare riferimento alla proprietà Recordset equivale a clonare un oggetto Recordset usando la stessa query. Tuttavia, a differenza di quando si usa la proprietà RecordsetClone, la modifica del record corrente nel recordset restituito dalla proprietà Recordset della maschera implica l'impostazione anche del record corrente della maschera.

Questa proprietà è disponibile solo se si usa codice di Visual Basic, Applications Edition (VBA).

Il comportamento di lettura/scrittura della proprietà Recordset dipende dal tipo di recordset (ADO o DAO) e dal tipo di dati (Access o SQL) contenuti nel recordset identificato dalla proprietà.

Tipo di recordset

Basato su dati SQL

Basato su dati Access

ADO

Lettura/scrittura

Lettura/scrittura

DAO

N/D

Lettura/scrittura

Nell'esempio seguente vengono aperti una maschera e un recordset e quindi la maschera viene associata al recordset impostando la proprietà Recordset della maschera sul nuovo oggetto Recordset creato.

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

Usare la proprietà Recordset per:

  • Per associare più maschere a un set di dati comune. In questo modo è possibile sincronizzare più maschere. Ad esempio,

    Set Me.Recordset = Forms!Form1.Recordset

  • Usare con l'oggetto Recordset metodi non supportati direttamente nelle maschere. Ad esempio, è possibile usare la proprietà Recordset con il metodo Find di ADO o Find di DAO in una finestra di dialogo personalizzata per la ricerca di un record.

  • Eseguire il wrapping di una transazione (di cui è possibile eseguire il rollback) in un set di modifiche che interessano più maschere.

La modifica della proprietà Recordset di una maschera può anche comportare la modifica delle proprietà RecordSource, RecordsetType e RecordLocks. È anche possibile che venga eseguito l'override di alcune proprietà correlate ai dati, ad esempio le proprietà Filter, FilterOn, OrderBy e OrderByOn.

Se si chiama il metodo Requery del recordset di una maschera, ad esempio Forms(0).Recordset.Requery, è possibile che la maschera non sia più associata. Per aggiornare i dati in una maschera associata a un recordset, impostare la proprietà RecordSource della maschera su se stessa (Forms(0).RecordSource = Forms(0).RecordSource).

Quando una maschera è associata a un recordset, si verifica un errore se si usa il comando Filtro in base a maschera.

Esempio

Nell'esempio seguente viene usata la proprietà Recordset per creare una nuova copia dell'oggetto Recordset dalla maschera corrente e vengono quindi stampati i nomi dei campi nella finestra Debug.

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

Nell'esempio successivo vengono usati la proprietà Recordset e l'oggetto Recordset per sincronizzare un recordset con il record corrente della maschera. Quando si seleziona un nome di società da una casella combinata, viene usato il metodo FindFirst per individuare il record relativo a tale società, in modo che la maschera visualizzi il record trovato.

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

Il codice seguente consente di determinare il tipo di recordset restituito dalla proprietà Recordset in diverse situazioni.

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

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.