Table of contents
XML
TOC
Réduire la table des matières
Développer la table des matières

Se déplacer dans un jeu d'enregistrements DAO

office 365 dev account|Dernière mise à jour: 04/10/2017
|
1 Contributeur

Un objet Recordset a généralement une position actuelle, la plupart du temps dans un enregistrement. Lorsque vous faites référence aux champs d'un jeu d'enregistrements, vous obtenez des valeurs de l'enregistrement à la position actuelle, réputée comme l'enregistrement actuel. Cependant, la position actuelle peut également se situer juste avant le premier enregistrement d'un jeu d'enregistrements ou juste après le dernier enregistrement. Dans certaines circonstances, la position actuelle n'est pas définie.

Vous pouvez utiliser les méthodes Move suivantes pour parcourir les enregistrements d'un jeu d'enregistrements:

  • La méthode MoveFirst passe au premier enregistrement.

  • La méthode MoveLast passe au dernier enregistrement.

  • La méthode MoveNext passe à l'enregistrement suivant.

  • La méthode MovePrevious passe à l'enregistrement précédent.

  • La méthode Move avance ou recule du nombre d'enregistrements spécifié dans sa syntaxe.

Vous pouvez utiliser chacune de ces méthodes sur des objets Recordset de type Table, Feuille de réponse dynamique et Capture instantanée. Pour un objet Recordset de type Avant uniquement, vous pouvez seulement utiliser les méthodes MoveNext et Move. Si vous utilisez la méthode Move sur un objet Recordset de type Avant uniquement, l'argument qui spécifie le nombre de lignes doit être un nombre entier positif.

L'exemple de code suivant ouvre un objet Recordset dans la table Employés qui contient tous les enregistrements ayant une valeur Null dans le champ SupHiérarchique. La fonction met ensuite à jour les enregistrements pour indiquer que ces employés sont des intérimaires. Pour chaque enregistrement du jeu d'enregistrements, l'exemple modifie les champs Titre et Notes et enregistre les modifications à l'aide de la méthode Update. Il utilise la méthode MoveNext pour passer à l'enregistrement suivant.

Sub UpdateEmployees()

Dim dbsNorthwind As DAO.Database
Dim rstEmployees As DAO.Recordset
Dim strSQL As String
Dim intI As Integer

On Error GoTo ErrorHandler

   Set dbsNorthwind = CurrentDb

   ' Open a recordset on all records from the Employees table that have
   ' a Null value in the ReportsTo field.
   strSQL = "SELECT * FROM Employees WHERE ReportsTo IS NULL"
   Set rstEmployees = dbsNorthwind.OpenRecordset(strSQL, dbOpenDynaset)

   ' If the recordset is empty, exit.
   If rstEmployees.EOF Then Exit Sub

   intI = 1
   With rstEmployees
      Do Until .EOF
         .Edit
         ![ReportsTo] = 5
         ![Title] = "Temporary"
         ![Notes] = rstEmployees![Notes] & "Temp #" & intI
         .Update
         .MoveNext
         intI = intI + 1
      Loop
   End With

   RstEmployees.Close
   dbsNorthwind.Close

   Set rstEmployees = Nothing
   Set dbsNorthwind = Nothing

   Exit Sub

ErrorHandler:
   MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Sub

Remarque L'exemple ci-dessus a uniquement pour but d'illustrer les méthodes Update et MoveNext. Pour bénéficier de performances optimales, nous vous conseillons d'effectuer cette opération en bloc avec une requête SQL UPDATE.

© 2018 Microsoft