Recordset, propriété

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

S'applique à

ComboBox, objet

Form, objet

ListBox, objet

Report, objet

Renvoie ou définit l'objet de jeu d'enregistrements ADO ou l'objet de jeu d'enregistrements DAO représentant la source d’enregistrement du formulaire, de l'état, du contrôle de zone de liste ou de zone de liste déroulante spécifiée. Type de données en lecture/écriture.

expression.Recordset

expression Requise. Expression qui renvoie l'un des objets de la liste S'applique à.

Notes

La propriété Recordset renvoie l'objet de jeu d'enregistrements fournissant les données parcourues dans un formulaire, un état, un contrôle de zone de liste ou un contrôle de zone de liste déroulante. Si un formulaire est basé sur une requête, par exemple, l'utilisation de la propriété Recordset équivaut à cloner un objet Recordset à l'aide de la même requête. Cependant, à l'inverse de la propriété RecordsetClone, la modification de l'enregistrement actif du jeu d'enregistrements renvoyé par la propriété Recordset du formulaire définit également l'enregistrement actif du formulaire.

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

Le comportement en lecture/écriture de la propriété Recordset est déterminé par le type de jeu d'enregistrements (ADO ou DAO) et le type de données (Access ou SQL) du jeu d'enregistrements identifié par la propriété.

Jeu d’enregistrements type

Basé sur des données SQL

Basé sur des données Access

ADO

Lecture/écriture

Lecture/écriture

DAO

N/A

Lecture/écriture

L'exemple suivant ouvre un formulaire et un jeu d'enregistrements et les relie 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

La propriété Recordset permet :

  • de lier plusieurs formulaires à un même jeu de données. Ceci permet de synchroniser plusieurs formulaires. Par exemple,

    Set Me.Recordset = Forms!Form1.Recordset

  • d'utiliser des méthodes qui ne sont pas directement prises en charge dans les formulaires avec l'objet Recordset. Vous pouvez par exemple utiliser la propriété Recordset avec les méthodes Find ADO ou Find DAO dans une boîte de dialogue personnalisée pour rechercher un enregistrement.

  • de regrouper une transaction (qui peut être annulée) autour d'une série de modifications affectant plusieurs formulaires.

La modification de la propriété Recordset d'un formulaire peut également entraîner celle des propriétés RecordSource, RecordsetType et RecordLocks. Certaines données relatives aux données peuvent également être écrasées. C'est le cas par exemple des propriétés Filter, FilterOn, OrderBy et OrderByOn.

L'invocation de la méthode Requery d'un jeu d'enregistrements d'un formulaire (par exemple, Forms(0).Recordset.Requery) peut entraîner la dissociation du formulaire. Pour actualiser les données d'un formulaire lié à un jeu d'enregistrements, définissez la propriété RecordSource du formulaire sur elle-même (Forms(0).RecordSource = Forms(0).RecordSource).

Lorsqu'un formulaire est lié à un jeu d'enregistrements, une erreur survient si vous utilisez la commande Filtrer par formulaire.

Exemple

L'exemple suivant utilise la propriété Recordset pour créer une nouvelle copie de l'objet Recordset à partir du formulaire actif, puis imprime les noms des champs de 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 jeu d'enregistrements et l'enregistrement actif du formulaire. Lorsque vous sélectionnez le nom d'une société dans une zone de liste déroulante, la méthode FindFirst est utilisée pour rechercher l'enregistrement de cette société et entraîne l'affichage de 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 jeu d'enregistrements renvoyé par la propriété Recordset sous 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

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

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.

×