Partager via


Recordset2.Requery, méthode (DAO)

S’applique à : Access 2013, Office 2013

Met à jour les données dans un objet Recordset en exécutant de nouveau la requête sur laquelle l’objet est basé.

Syntaxe

expression . Requery(NewQueryDef)

Expression Variable qui représente un objet Recordset2 .

Paramètres

Nom

Obligatoire/facultatif

Type de données

Description

NewQueryDef

Facultatif

Variant

Représente la valeur de la propriété Name d’un objet QueryDef.

Remarques

Utilisez cette méthode pour vous assurer qu’un objet Recordset contient les données les plus récentes. Cette méthode renseigne à nouveau l’objet Recordset actif à partir des paramètres de la requête actuelle ou (dans un espace de travail Microsoft Access) de ceux, nouveaux, fournis par l’argument newquerydef.

Si vous ne spécifiez pas d’argument newquerydef, l’objet Recordset est de nouveau renseigné à partir de la définition et des paramètres de requête déjà utilisés pour renseigner l’objet Recordset à l’origine. Any changes to the underlying data will be reflected during this re-population. If you didn't use a QueryDef to create the Recordset, the Recordset is re-created from scratch.

Si vous spécifiez l’objet QueryDef d’origine dans l’argument newquerydef, Recordset fait l’objet d’une nouvelle requête basée sur les paramètres spécifiés par QueryDef. Toute modification apportée aux données sous-jacentes sera prise en compte lorsque l’objet sera de nouveau renseigné. Pour répercuter les modifications effectuées au niveau de la valeur des paramètres de la requête dans l’objet Recordset, vous devez fournir l’argument newquerydef.

If you specify a different QueryDef than what was originally used to create the Recordset, the Recordset is re-created from scratch.

Lorsque vous utilisez la méthode Requery, le premier enregistrement de l'objet Recordset devient l'enregistrement actif.

Vous ne pouvez pas appliquer la méthode Requery aux objets Recordset de type feuille de réponse dynamique ou instantané dont la propriété Restartable a la valeur False. Toutefois, si vous fournissez l’argument facultatif newquerydef, la propriété Restartable est ignorée.

Si les propriétés BOF et EOF de l'objet Recordset ont toutes deux la valeur True après que vous ayez utilisé la méthode Requery, la requête ne renvoie aucun enregistrement et l'objet Recordset ne contient pas de données.

Exemple

Cet exemple montre comment la méthode Requery peut être utilisée pour actualiser une requête après la modification des données sous-jacentes.

    Sub RequeryX() 
     
     Dim dbsNorthwind As Database 
     Dim qdfTemp As QueryDef 
     Dim rstView As Recordset2 
     Dim rstChange As Recordset2 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     Set qdfTemp = dbsNorthwind.CreateQueryDef("", _ 
     "PARAMETERS ViewCountry Text; " & _ 
     "SELECT FirstName, LastName, Country FROM " & _ 
     "Employees WHERE Country = [ViewCountry] " & _ 
     "ORDER BY LastName") 
     
     qdfTemp.Parameters!ViewCountry = "USA" 
     Debug.Print "Data after initial query, " & _ 
     [ViewCountry] = USA" 
     Set rstView = qdfTemp.OpenRecordset 
     Do While Not rstView.EOF 
     Debug.Print " " & rstView!FirstName & " " & _ 
     rstView!LastName & ", " & rstView!Country 
     rstView.MoveNext 
     Loop 
     
     ' Change underlying data. 
     Set rstChange = dbsNorthwind.OpenRecordset("Employees") 
     rstChange.AddNew 
     rstChange!FirstName = "Nina" 
     rstChange!LastName = "Roberts" 
     rstChange!Country = "USA" 
     rstChange.Update 
     
     rstView.Requery 
     Debug.Print "Requery after changing underlying data" 
     Set rstView = qdfTemp.OpenRecordset 
     Do While Not rstView.EOF 
     Debug.Print " " & rstView!FirstName & " " & _ 
     rstView!LastName & ", " & rstView!Country 
     rstView.MoveNext 
     Loop 
     
     ' Restore original data because this is only a 
     ' demonstration. 
     rstChange.Bookmark = rstChange.LastModified 
     rstChange.Delete 
     rstChange.Close 
     
     rstView.Close 
     dbsNorthwind.Close 
     
    End Sub 

Cet exemple de code montre comment la méthode Requery peut être utilisée pour actualiser une requête suite à la modification de ses paramètres.

Sub RequeryX2() 
 
 Dim dbsNorthwind As Database 
 Dim qdfTemp As QueryDef 
 Dim prmCountry As Parameter 
 Dim rstView As Recordset2 
 
 Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
 Set qdfTemp = dbsNorthwind.CreateQueryDef("", _ 
 "PARAMETERS ViewCountry Text; " & _ 
 "SELECT FirstName, LastName, Country FROM " & _ 
 "Employees WHERE Country = [ViewCountry] " & _ 
 "ORDER BY LastName") 
 Set prmCountry = qdfTemp.Parameters!ViewCountry 
 
 qdfTemp.Parameters!ViewCountry = "USA" 
 Debug.Print "Data after initial query, " & _ 
 [ViewCountry] = USA" 
 Set rstView = qdfTemp.OpenRecordset 
 Do While Not rstView.EOF 
 Debug.Print " " & rstView!FirstName & " " & _ 
 rstView!LastName & ", " & rstView!Country 
 rstView.MoveNext 
 Loop 
 
 ' Change query parameter. 
 qdfTemp.Parameters!ViewCountry = "UK" 
 ' QueryDef argument must be included so that the 
 ' resulting Recordset reflects the change in the query 
 ' parameter. 
 rstView.Requery qdfTemp 
 Debug.Print "Requery after changing parameter, " & _ 
 "[ViewCountry] = UK" 
 Do While Not rstView.EOF 
 Debug.Print " " & rstView!FirstName & " " & _ 
 rstView!LastName & ", " & rstView!Country 
 rstView.MoveNext 
 Loop 
 
 rstView.Close 
 dbsNorthwind.Close 
 
End Sub