创建一个删除查询,用于从
FROM
子句中列出的一个或多个表中删除满足
WHERE
子句的记录。
DELETE [
table
.*] FROM
table
WHERE
criteria
DELETE 语句包含以下部分:
希望删除多个记录时,DELETE 语句特别有用。
若要从数据库中删除整个表,可以将
Execute
方法与
DROP
语句一起使用。 但是,如果删除表,结构将丢失。 相反,使用 DELETE 时,仅删除数据;表结构和所有表属性(如字段属性和索引)保持不变。
可以使用 DELETE 从与其他表存在一对多关系的表中删除记录。 当查询中删除了关系的某一方中的相应记录时,级联删除操作会删除在关系的多方表中的相应记录。 例如,在“客户”表和“订单”表的关系中,“客户”表是关系的一方,而“订单”表则是关系中的多方。 如果指定了级联删除选项,那么从“客户”表中删除一个记录将导致“订单”表中相应的记录被删除。
删除查询将删除整个记录,而不仅仅删除特定字段中的数据。 如果要删除特定字段的值,请创建一个更新查询,将相应字段的值更改为
Null
。
使用删除查询删除记录后,无法取消该操作。 如果要知道删除了哪些记录,先检查使用相同条件的选择查询的结果,然后运行删除查询。
不论什么时候都要维护数据的备份。 如果错删了记录,还可以从备份中检索这些记录。
本例删除职务为 Trainee 的雇员的所有记录。 当 FROM 子句中仅包含一个表时,您不必在 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