[原创]让ACC删除记录后自动排序字段不断号
文章首发www.gdsspt.com/JBbs
作者:子言[JaSoft]
让ACCESS的自动编号在记录删除后不断号,我们可以在删除记录后,用ACCESS打开数据库接着删除ID自动排序字段再重建ID字段,用ACCESS做当然很简单,但如果用程序执行SQL去做,就要注意点问题了。
如下是处理办法,代码:
If Request.QueryString("action")="del" Then
Dim id,Sql,Cat,SQLR,page
id = Request.QueryString("id")
page = Request.QueryString("page")
Conn.ExeCute("DELETE * FROM [BlackLog] WHERE id="&id&"")
Conn.ExeCute("DROP INDEX ID ON [BlackLog]")
Sql = "ALTER TABLE [BlackLog] DROP COLUMN Id"
Conn.ExeCute(Sql)
'PRIMARY KEY
SqlA = "ALTER TABLE [BlackLog] ADD Id AUTOINCREMENT"
Conn.ExeCute(SqlA)
Conn.ExeCute("CREATE INDEX ID ON [BlackLog] (ID)")
Response.write "<script language='javascript'>" & chr(13)
response.write "alert('删除记录成功!');" & Chr(13)
response.write "window.document.location.href='Index.Asp?page="&page&"';"&Chr(13)
response.write "</script>" & Chr(13)
Response.End
End If
相信大家都看得懂写,具体的主要要说明的一下的如下:
DROP INDEX ID ON [BlackLog] 删除ID字段中的索引
ALTER TABLE [BlackLog] ADD Id AUTOINCREMENT 建立自动排续字段ID
CREATE INDEX ID ON [BlackLog] (ID) 建立ID索引在ID字段中
因为自动排序字段还有个索引的问题,所以在没删除索引前我们不能更新字段,也不能删除字段,所以必先处理索引。
但必须要注意的是,我们这里的索引名称为ID,所以我们在操作前必须把索引更名,操作如下:
打开表设计视图 ---> 菜单栏 ---> 索引 ---> 把原本ID字段的索引去掉,添加索引名称为ID 指向 ID 字段
程序演示www.gdsspt.com/Tacc
演示程序都打好包,可以在演示处下载。
网上还有些人使用的是重建表的方法,这样的操作量比较大,当数据库记录数比较多的时候比较低效。谢谢各位阅读,如果你有更好的方法,可以到我的网站提出你的看法。本人纯粹因为有人要求这样做才搅了这个出来,虽然没意义,但作为ACCESS操作说一下都无伤大雅。最后谢谢各位。