Apporter des modifications en bloc à un jeu d’enregistrements DAO
Après avoir créé un objet Recordset de type table ou feuille de réponse dynamique, vous pouvez modifier, supprimer ou ajouter de nouveaux enregistrements. Vous ne pouvez pas modifier, supprimer ou ajouter des enregistrements à un objet Recordset de type Capture instantanée ou Avant uniquement.
Nombre des modifications que vous pouvez effectuer dans une boucle peuvent être apportées plus efficacement en utilisant une requête Mise à jour ou Suppression avec SQL. L’exemple suivant crée un objet QueryDef pour mettre à jour la table Employees, puis exécute la requête.
Dim dbsNorthwind As DAO.Database
Dim qdfChangeTitles As DAO.QueryDef
Set dbsNorthwind = CurrentDb
Set qdfChangeTitles = dbsNorthwind.CreateQueryDef("")
qdfChangeTitles.SQL = "UPDATE Employees SET Title = " & _
"'Account Executive' WHERE Title = " & _
"'Sales Representative'"
' Invoke query.
qdfChangeTitles.Execute dbFailOnError
Dans cet exemple, vous pouvez remplacer l’intégralité de la chaîne SQL par une requête de paramètre stockée, auquel cas la procédure invite l’utilisateur à entrer des valeurs de paramètre. L’exemple suivant montre comment l’exemple précédent peut être réécrit en tant que requête de paramètre stockée.
Dim dbsNorthwind As DAO.Database
Dim qdfChangeTitles As DAO.QueryDef
Dim strSQLUpdate As String
Dim strOld As String
Dim strNew As String
Set dbsNorthwind = CurrentDb
strSQLUpdate = "PARAMETERS [Old Title] Text, [New Title] Text; " & _
"UPDATE Employees SET Title = [New Title] WHERE " & _
"Title = [Old Title]"
' Create the unstored QueryDef object.
Set qdfChangeTitles = dbsNorthwind.CreateQueryDef("", strSQLUpdate)
' Prompt for old title.
strOld = InputBox("Enter old job title:")
' Prompt for new title.
strNew = InputBox("Enter new job title:")
' Set parameters.
qdfChangeTitles.Parameters("Old Title") = strOld
qdfChangeTitles.Parameters("New Title") = strNew
' Invoke query.
qdfChangeTitles.Execute
Notes
Une requête Suppression est beaucoup plus efficace qu'un code qui s'exécute en boucle dans un jeu d'enregistrements et modifie ou supprime un enregistrement à la fois.
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.