Freigeben über


Recordset2.Requery-Methode (DAO)

Gilt für: Access 2013, Office 2013

Aktualisiert die Daten in einem Recordset-Objekt, indem die Abfrage erneut ausgeführt wird, auf der das Objekt basiert.

Syntax

Ausdruck . Requery(NewQueryDef)

Ausdruck Eine Variable, die ein Recordset2-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

NewQueryDef

Optional

Variant

Stellt den Name-Eigenschaftenwert eines QueryDef-Objekts dar

Bemerkungen

Verwenden Sie diese Methode, um sicherzustellen, dass ein Recordset die aktuellen Daten enthält. Diese Methode füllt das aktuelle Recordset neu aus, indem sie entweder die aktuellen Abfrageparameter oder (in einem Microsoft Access-Arbeitsbereich) die vom newquerydef-Argument neu bereitgestgellten verwendet.

Wenn Sie kein newquerydef-Argument angeben haben, wird das Recordset basierend auf der gleichen Abfragedefinition und den gleichen Parametern neu ausgefüllt, die ursprünglich zum Ausfüllen des Recordset verwendet wurden. Änderungen der zugrunde liegenden Daten werden während des erneuten Ausfüllens berücksichtigt. Wenn Sie keine QueryDef zum Erstellen des Recordset verwendet haben, wird das Recordset komplett neu erstellt.

Wenn Sie das ursprüngliche QueryDef im Argument „newquerydef“ angeben, wird das Recordset mithilfe der durch QueryDef angegebenen Parameter erneut abgefragt. Änderungen an den zugrunde liegenden Daten werden während dieser erneuten Auffüllung angezeigt. Um Änderungen an den Abfrageparameterwerten im Recordset widerzuspiegeln, müssen Sie das newquerydef-Argument angeben.

Wenn Sie eine andere QueryDef als die angeben, die ursprünglich zum Erstellen des Recordset verwendet wurde, wird das Recordset komplett neu erstellt.

Wenn Sie Requery verwenden, wird der erste Datensatz im Recordset der aktuelle Datensatz.

You can't use the Requery method on dynaset- or snapshot-type Recordset objects whose Restartable property is set to False. Wenn Sie aber das optionale newquerydef-Argument angeben, wird die Restartable-Eigenschaft ignoriert.

Wenn sowohl die BOF- als auch die EOF-Eigenschafteneinstellung des Recordset-Objekts True lautet, nachdem Sie die Requery-Methode angewendet haben, hat die Abfrage keine Datensätze zurückgegeben, und das Recordset enthält keine Daten.

Beispiel

Dieses Beispiel zeigt, wie die Requery-Methode zum Aktualisieren einer Abfrage verwendet werden kann, nachdem die zugrunde liegenden Daten geändert wurden.

    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 

Dieses Beispiel zeigt, wie die Requery-Methode zum Aktualisieren einer Abfrage verwendet werden kann, nachdem die Abfrageparamter geändert wurden.

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