Proprietà Recordset

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:

  • Associare più maschere a un set di dati comune, in modo da 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
Next
End 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.Close
End 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 If
End Sub
Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×