Ajouter un enregistrement à un jeu d’enregistrements DAO

Vous pouvez ajouter un nouvel enregistrement à un objet Recordset de type table ou feuille de réponse dynamique à l’aide de la méthode AddNew .

Pour ajouter un enregistrement à un objet Recordset de type table ou feuille de réponse dynamique

  1. Utilisez la méthode AddNew pour créer un enregistrement que vous pouvez modifier.

  2. Attribuez des valeurs à chacun des champs de l'enregistrement.

  3. Utilisez la méthode Update pour enregistrer le nouvel enregistrement.

L’exemple de code suivant ajoute un objet Recordset de type table appelé Shippers (Expéditeurs).

Dim dbsNorthwind As DAO.Database 
Dim rstShippers As DAO.Recordset 
 
   Set dbsNorthwind = CurrentDb 
   Set rstShippers = dbsNorthwind.OpenRecordset("Shippers") 
 
   rstShippers.AddNew 
   rstShippers!CompanyName = "Global Parcel Service" 
      . 
      . ' Set remaining fields. 
      . 
 
   rstShippers.Update 

Lorsque vous utilisez la méthode AddNew, le moteur de base de données Access prépare un nouvel enregistrement vide qui est l’enregistrement actif. Lorsque vous utilisez la méthode Update pour enregistrer le nouvel enregistrement, l’enregistrement qui était actif avant que vous n’utilisiez la méthode AddNew devient de nouveau l’élément actif.

La position du nouvel enregistrement dans l'objet Recordset est différente selon si vous avez ajouté l'enregistrement à un objet Recordset de type table ou de type feuille de réponse dynamique. Si vous ajoutez un enregistrement à un objet Recordset de type feuille de réponse dynamique, le nouvel enregistrement apparaît à la fin de l'objet Recordset, quelle que soit la manière dont l'objet Recordset est trié. Pour que le nouvel enregistrement apparaisse à la position appropriée, vous pouvez utiliser la méthode Requery ou recréer l'objet Recordset.

Si vous ajoutez un enregistrement à un objet Recordset de type table, la position de l'enregistrement est déterminée par l'index actif, en revanche, si aucun index n'est actif, l'enregistrement apparaît à la fin de la table. Étant donné que le moteur de base de données Access permet à plusieurs utilisateurs de créer des enregistrements simultanément dans une table, votre enregistrement peut ne pas apparaître à la fin de l’objet Recordset. Utilisez la méthode LastModified au lieu de la méthode MoveLast pour accéder à l'enregistrement que vous venez d'ajouter.

Remarque

Si vous utilisez la méthode AddNew pour ajouter un enregistrement et si vous accédez à un autre enregistrement ou si fermez l'objet Recordset sans avoir d'abord utilisé la méthode Update, les changement que vous avez effectués seront perdus sans avertissement préalable. Par exemple, si vous omettez la méthode Update dans l'exemple précédent, aucun changement ne sera apporté à la table Shippers (Expéditeurs).

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.