Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013, Office 2013
Crée une requête qui supprime les enregistrements d’une ou de plusieurs tables répertoriées dans la clause FROM qui satisfont à la clause WHERE.
Syntaxe
DELETE [table.*] FROM table WHERE criteria
L’instruction DELETE est composée des éléments suivants :
Quitter |
Description |
---|---|
table |
Nom facultatif de la table où sont supprimés les enregistrements. |
table |
Nom de la table où sont supprimés les enregistrements. |
criteria |
Expression qui détermine les enregistrements à supprimer. |
Remarques
L’instruction DELETE est particulièrement utile pour supprimer plusieurs enregistrements.
Pour supprimer une table entière de la base de données, vous pouvez utiliser la méthode Execute avec une instruction DROP. Si vous supprimez la table, sa structure est perdue. En revanche, si vous utilisez la clause DELETE, seules les données sont supprimées ; la structure de la table et toutes ses propriétés, telles que les attributs des champs et les index, sont conservées.
Vous pouvez utiliser DELETE pour supprimer des enregistrements des tables qui sont dans une relation de un à plusieurs avec d'autres tables. Les opérations de suppression en cascade entraînent la suppression des enregistrements des tables qui sont du côté 'plusieurs' de la relation lorsque l'enregistrement correspondant du côté 'un' est supprimé dans la requête. Par exemple, dans la relation entre les tables Customers et Orders, la table Customers est du côté 'un' et la table Orders est du côté 'plusieurs' de la relation. Lorsqu'un enregistrement est supprimé de la table Customers, les enregistrements correspondants sont supprimés de la table Orders si l'option de suppression en cascade est spécifiée.
Une requête de suppression supprime les enregistrements, et pas seulement les données dans des champs spécifiques. Si vous voulez supprimer des valeurs dans un champ spécifique, créez une requête de mise à jour qui remplacent ces valeurs par des valeurs Null.
Importante
- Une fois que des enregistrements sont supprimés à l'aide d'une requête de suppression, il n'est pas possible d'annuler cette opération. Si vous voulez savoir quels enregistrements ont été supprimés, examinez d'abord les résultats d'une requête de sélection qui utilise les mêmes critères, puis exécutez la requête de suppression.
- Conservez toujours des copies de sauvegarde de vos données. Si vous supprimez des enregistrements par inadvertance, vous pourrez les récupérer à partir de vos copies de sauvegarde.
Exemple
Dans cet exemple, tous les enregistrements d'employés dont le titre est Trainee, sont supprimés. Lorsque la clause FROM ne comporte qu'une seule table, vous n'avez pas besoin d'indiquer le nom de la table dans l'instruction DELETE.
Sub DeleteX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Delete employee records where title is Trainee.
dbs.Execute "DELETE * FROM " _
& "Employees WHERE Title = 'Trainee';"
dbs.Close
End Sub