你的问题是你用错了控件,我这个是ADO连接数据库。你用的是ADODC加DATAGRID连接的。所以出错。你自己看我声明数据库的时候是ADODB
Call OpenConn '用CALL 调用OPENCONN函数
sql = "select hfid from hfb ORDER BY hfid" '打开hfb表,hfid是自动编号的数据 ,里面的hfb和hfid都是我自己随便写的名字,hfd是表的名字,hfid是要自动编号的字段
rs.Open sql, cn, 1, 1 'rs是打开数据库后可以调用数据库的名称
If rs.RecordCount > 0 Then ’假如数据库中的内容大于0,即数据库中有数据,不是空的
rs.MoveLast '则移动到数据库的最后面一个数据,例如现在编号是HF00001~HF00009,就移动到HF00009
txtHFID.Text = "HF" & Format(Val(Right(rs.Fields("hfid"), 5) + 1), "00000") '生成的为HF00009+1 为HF00010,即自动在最后的编号基础上加1 ,里面的TXTHFID是文本框的名称,根据你自己的修改。RS.FIELDS(A)是指你现在打开的这个数据库中的字段A的数值
Else
txtHFID.Text = "HF00001"'如果没有数据,自动生成HF00001
End If
Call CloseConn ’关闭数据库 ,CLOSECONN也是函数名臣,你可以修改
txtdate.Text = Format(Date, yyyymmdd) ’日期就比较简单了,直接赋值就可以了。
最后的是打开和关闭数据库的代码:
Public Sub OpenConn() ’函数声明
Set cn = New ADODB.Connection ’声明CN为新的数据库链接
Set rs = New ADODB.Recordset ’声明RS
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\dell745\data\data.cc;Jet OLEDB:Database Password=123;Persist Security Info=False;" '打开的是网络里的DELL745计算机下面的DATA文件夹下面的DATA.CC文件,密码是123.
End Sub
'关闭数据库连接
Public Sub CloseConn()
rs.Close ’关闭链接
Set rs = Nothing ’清0
cn.Close
Set cn = Nothing
End Sub
如果要使编号保持连续,不间段,那这个字段就不能用“自动编号”类型。而应该用程序给它分配值。
每次添加记录时都用程序查询一下上一条记录的序号,然后增加1,再作为新记录的序号。
删除一条记录时,把此条记录之后的记录全部往前移一位(序号减1)。
如果是ACCESS数据库的话。又想用自动编号。方法只有一个了。首先把全部数据写到一个临时表中。然后。把原表删除了!在建一个新表。在把临时表中的数据库写到新表中去!
如果不是用自动编号。可以用自己生成的方法。删除一个。就得把下面的数据全部修改掉
我说的就是用命令建立一个新表。然后把改后数据写入新表中去。这样编号就是一样了。还用的是自动编号的方法用下面的图来说明
A表是原来表
操作删除A表中几条数据后。你在写一个整理函数!
整理函数功能如下
查询全部数据到一个数据集中。然后。删除以前的表。再次建一个新表和A表的结构一样。
之后把查询出来的数据写入新建的表中就行了!