删除表:CurrentDb.Execute "DROP TABLE [表名] "
批量删除指定记录:
strSql = "DELETE * FROM [表名] WHERE [lngNodeId]<>1"
CurrentDb.Execute strSql
自动编号字段比较讨厌,如果你删除了记录之后再添加,记录编号会从删除的地方之后继续增加。比如你有10001条记录,删掉最后10000条,然后添第2条记录,记录编号就会是10002。解决这个问题的办法,就是造个一模一样的新表,把原始记录拷过去,把老表删了,把新表名改成老表名。下面这个例子的效果就把老表删的只剩一条记录,而且自动编号的记忆也被清除了:
上面这个办法想出来之后,到论坛上显摆,招致各位大侠的一致反对。jhone99说,如果表非常大的时候,操作时间可能很长,因为我倒了两次表。Tiger_Zhao说,自己控制编号比较适合单用户操作:
1)新增时取 MAX(ID)+1 作为新的编号
2)删除时用一个事务做两步
a) DELETE table1 WHERE ID = 10001
b) UPDATE table1 SET ID = ID -1 WHERE ID > 10001
说,第一步直接这样做也可以
insert into c (id,num,weight) select max(id)+1,5,32 from c
总之,显摆的很失败。
其他相关文章:DAO和ADO里批量删除记录