创建一个删除查询,可从列在 FROM 子句之中的一个或多个表中删除记录,且该子句满足 WHERE 子句中的条件。语法DELETE [table.*] FROM table WHERE criteriaDELETE 语句可分为以下几个部分:部分 描述 table 从其中删除记录的表的可选名称。 table 从其中删除记录的表的名称。 criteria 决定哪些记录应该被删除的表达式。 说明可以使用 DELETE 删除多个记录。 可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。 可以使用 DELETE 从表中删除记录,且该表与其他表有一对多关系。若在一个查询中删除了关系中‘一’的一方的表的相应记录,级联删除操作将删除关系中‘多’的一方的表的记录。例如,在客户表与订单表之间的关系中,客户表是‘一’方,而订单表是‘多’方。如果指定使用级联删除,从客户数据中删除一个记录,相对应之订单记录也会被删除。删除查询不只删除指定字段之中的数据,它会删除全部的记录。如果您要删除在一个特定字段之中的值,请创建一个更新查询将值改变为 Null。重点?当使用删除查询删除记录之后,不能取消此操作。如果想要知道哪些记录已被删除,首先验证使用相同条件的选定查询的结果,然后运行删除查询。 ?随时将数据做备份副本。如果您误删除记录,可以从备份副本中将数据恢复。没有你说的这种结构~~
我解决了,我这样做的: Rs.Open "select * from table where ...", Tmp_Cnn, adOpenStatic, adLockOptimistic if not rs.eof then rs.movelast rs.delete rs.update end if要分的来分点!!
其实在建表之初这样的问题是可以杜绝的,你可以设置主键select DISTINCT(*)into @tablexxx from tablexdrop table tablex select * into tablex from @tablexxxdrop table @tablexxx之后你还可以为表tablex设置一个主键
FROM table
WHERE criteriaDELETE 语句可分为以下几个部分:部分 描述
table 从其中删除记录的表的可选名称。
table 从其中删除记录的表的名称。
criteria 决定哪些记录应该被删除的表达式。
说明可以使用 DELETE 删除多个记录。
可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。
可以使用 DELETE 从表中删除记录,且该表与其他表有一对多关系。若在一个查询中删除了关系中‘一’的一方的表的相应记录,级联删除操作将删除关系中‘多’的一方的表的记录。例如,在客户表与订单表之间的关系中,客户表是‘一’方,而订单表是‘多’方。如果指定使用级联删除,从客户数据中删除一个记录,相对应之订单记录也会被删除。删除查询不只删除指定字段之中的数据,它会删除全部的记录。如果您要删除在一个特定字段之中的值,请创建一个更新查询将值改变为 Null。重点?当使用删除查询删除记录之后,不能取消此操作。如果想要知道哪些记录已被删除,首先验证使用相同条件的选定查询的结果,然后运行删除查询。
?随时将数据做备份副本。如果您误删除记录,可以从备份副本中将数据恢复。没有你说的这种结构~~
Rs.Open "select * from table where ...", Tmp_Cnn, adOpenStatic, adLockOptimistic
if not rs.eof then
rs.movelast
rs.delete
rs.update
end if要分的来分点!!