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 de 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