Propriété Recordset

S’applique à

Objet ComboBox

Objet Form

Objet ListBox

Objet Report

Renvoie ou définit l’objet Recordset ADO ou Recordset DAO représentant la source d’enregistrement pour le formulaire, l’état, le contrôle de zone de liste ou le contrôle de zone de liste modifiable spécifiés. Lecture/écriture.

expression.Recordset

expression Obligatoire. Expression qui renvoie l’un des objets figurant dans la liste S’applique à.

Remarques

La propriété Recordset renvoie l’objet Recordset qui fournit les données parcourues dans un formulaire, un état, une zone de liste ou une zone de liste modifiable. Par exemple, si un formulaire est basé sur une requête, faire référence à la propriété Recordset équivaut à cloner un objet Recordset à l’aide de la même requête. Toutefois, contrairement à la propriété ClôneRecordset, la modification de l’enregistrement actif dans le Recordset renvoyé par la propriété Recordset du formulaire a également poru effet de définir l’enregistrement actif du formulaire.

Cette propriété est disponible uniquement à l’aide d’un code Visual Basic pour Applications (VBA).

Le comportement de lecture/écriture de la propriété Recordset est déterminé par le type de recordset (ADO ou DAO) et le type des données (Access ou SQL) contenues dans le recordset identifié par la propriété.

Type de Recordset

Basé sur des données SQL

Basé sur des données Access

ADO

Lecture/écriture

Lecture/écriture

DAO

S/O

Lecture/écriture

L’exemple suivant ouvre un formulaire et un recordset, puis lie le formulaire au recordset en définissant la propriété Recordset du formulaire sur l’objet Recordset nouvellement créé.

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

Utilisez la propriété Recordset pour les opérations suivantes :

  • Lier plusieurs formulaires à un jeu de données commun. Cela permet de synchroniser plusieurs formulaires. Par exemple,

    Set Me.Recordset = Forms!Form1.Recordset

  • Utiliser avec l’objet Recordset des méthodes qui ne sont pas directement prises en charge sur les formulaires. Par exemple, vous pouvez utiliser la propriété Recordset avec les méthodes Rechercher d’ADO ou Rechercher de DAO dans une boîte de dialogue personnalisée pour trouver un enregistrement.

  • Inclure dans une transaction (qui peut être restaurée) un ensemble de modifications affectant plusieurs formulaires.

La modification de la propriété Recordset d’un formulaire peut également modifier les propriétés Source, TypeRecordset et Verrouillage. En outre, certaines propriétés associées aux données peuvent être remplacées, telles que Filtre, FiltreActif, TriPar et TriActif.

L’appel de la méthode Réexécuter la requête du recordset d’un formulaire (par exemple, Forms(0).Recordset.Requery) peut avoir pour effet que le formulaire devienne indépendant. Pour actualiser les données d’un formulaire dépendant d’un recordset, définissez la propriété Source du formulaire sur lui-même (Forms(0).RecordSource = Forms(0).RecordSource).

Quand un formulaire est dépendant d’un recordset, une erreur se produit si vous utilisez la commande Filtrer par formulaire.

Exemple

L’exemple suivant utilise la propriété Recordset pour créer une copie de l’objet Recordset du formulaire actif, puis imprime les noms des champs dans la fenêtre Débogage.

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

L’exemple suivant utilise la propriété Recordset et l’objet Recordset pour synchroniser un recordset avec l’enregistrement actif du formulaire. Quand un nom de société est sélectionné dans une zone de liste modifiable, la méthode TrouverPremier est utilisée pour trouver l’enregistrement de cette société, de sorte que le formulaire affiche l’enregistrement trouvé.

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

Le code suivant permet de déterminer le type de recordset renvoyé par la propriété Recordset en fonction de différentes conditions.

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
Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×