VB操作ACCESS数据库自动编号列的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:16:24
做了个程序,使用ADO连接数据库,并显示到DATAGRID里面,程序可以增加数据信息到数据库,也可从数据库中删除选中数据信息。
为了能在增加以及删除时 自动编号列的编号能顺序编号,首先我的表里面有一个“序号”的自动编号列。在删除数据信息的时候,我将该“序号”列删除,重建一个“序号”的自动编号列。
现在又个问题,当将表里面的数据都删除的时候,重新增加信息的时,编号不是从1开始,而是从2开始,这是为什么?谢谢高手的解答。

删除按钮的代码
Private Sub Command2_Click()
If Adodc1.Recordset.BOF = False Or Adodc1.Recordset.EOF = False Then
If MsgBox("确定删除?", vbYesNo, "警告") = vbYes Then
Adodc1.Recordset.Delete
cha = "select * from 表 order by 序号"
Adodc1.RecordSource = cha
Adodc1.Refresh
Call xuhao
End If
Else
MsgBox "未选中数据!", , "警告"
End If
End Sub

Sub xuhao()
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb;"
myRs.Open "alter table [表] drop column 序号", myCon
myRs.Open "alter table [表] add 序号 autoincrement not null ",myCon
myCon.Close
cha = "s

我在3年前也是为了这个问题弄不明白,至今我也没看到有谁把这个问题解决掉了.其实跟VB没有关系的,是数据库里面的设置如此..

当初我也不太明白为什么要设置成这样,其实细细想想,你就会明白的.

打个比方:如果你的数据库里面有10万条记录,要把第500条删除了,第15000删除了......(如果要删除1000条不连续的记录)...那你电脑惨了..这个过程估计十几分钟也搞不完..并且还要重新排序...

做了个程序,使用ADO连接数据库,并显示到DATAGRID里面,程序可以增加数据信息到数据库,也可从数据库中删除选中数据信息。
为了能在增加以及删除时 自动编号列的编号能顺序编号,首先我的表里面有一个“序号”的自动编号列。在删除数据信息的时候,我将该“序号”列删除,重建一个“序号”的自动编号列。
现在又个问题,当将表里面的数据都删除的时候,重新增加信息的时,编号不是从1开始,而是从2开始