Share via


Propriété Form.RecordsetClone (Access)

Utilisez la propriété RecordsetClone pour faire référence à l’objet Recordset d’un formulaire spécifié par la propriété RecordSource du formulaire. En lecture seule.

Syntaxe

expression. RecordsetClone

expressionVariable qui représente un objetForm.

Remarques

Le paramétrage de la propriété RecordsetClone est une copie de la requête ou table sous-jacente spécifiée par la propriété RecordSource du formulaire. Si un formulaire est basé sur une requête, par exemple, toute référence à la propriété RecordsetClone est équivalente au clonage de l’objet Recordset à l’aide de la même requête. Si vous appliquez alors un filtre au formulaire, l'objet Recordset reflète le filtrage.

Cette propriété n’est disponible qu’avec Visual Basic et est en lecture seule dans tous les modes.

Utilisez la propriété RecordsetClone pour vous déplacer ou effectuer des opérations dans les enregistrements d’un formulaire indépendants du formulaire lui-même. Par exemple, vous pouvez utiliser la propriété RecordsetClone lorsque vous souhaitez utiliser une méthode, telle que la méthode DAO Find , qui ne peut pas être utilisée avec les formulaires.

Lorsqu’un nouvel objet Recordset est ouvert, son premier enregistrement est l’enregistrement en cours. Si vous utilisez l’une des méthodes Find ou Move pour activer un autre enregistrement dans l’objet Recordset , vous devez synchroniser l’enregistrement actif dans l’objet Recordset avec l’enregistrement actif du formulaire en affectant la valeur de la propriété Bookmark DAO à la propriété Bookmark du formulaire.

Exemple

L’exemple suivant utilise la propriété RecordsetClone pour créer un clone de l’objet Recordset à partir du formulaire Orders , puis imprime les noms des champs dans la fenêtre Exécution.

Sub Print_Field_Names() 
    Dim rst As Recordset, intI As Integer 
    Dim fld As Field 
 
    Set rst = Me.RecordsetClone 
    For Each fld in rst.Fields 
        ' Print field names. 
        Debug.Print fld.Name 
    Next 
End Sub

L’exemple suivant utilise la propriété RecordsetClone et l’objet Recordset pour synchroniser l’enregistrement d’un jeu d’enregistrements avec l’enregistrement en cours du formulaire. Lorsqu’un nom de société est sélectionné dans une zone de liste déroulante, la méthode FindFirst est utilisée pour localiser l’enregistrement de cette société et la propriété Bookmark DAO de l’objet Recordset est affectée à la propriété Bookmark du formulaire, ce qui entraîne l’affichage de l’enregistrement trouvé par le formulaire.

Sub SupplierID_AfterUpdate() 
    Dim rst As Recordset 
    Dim strSearchName As String 
 
    Set rst = Me.RecordsetClone 
    strSearchName = Str(Me!SupplierID) 
    rst.FindFirst "SupplierID = " & strSearchName 
        If rst.NoMatch Then 
            MsgBox "Record not found" 
        Else 
            Me.Bookmark = rst.Bookmark 
        End If 
    rst.Close 
End Sub

Utilisez la propriété RecordCount pour compter le nombre d’enregistrements dans un objet Recordset . L’exemple suivant montre comment combiner la propriété RecordCount et la propriété RecordsetClone pour compter les enregistrements dans un formulaire.

Forms!Orders.RecordsetClone.MoveLast 
MsgBox "My form contains " _ 
    & Forms!Orders.RecordsetClone.RecordCount _ 
    & " records.", vbInformation, "Record Count"

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.