关于在access数据库中添加新记录的问题

请问应用vb的ADODC控件如何在access的指定位置添加一条新记录,每次使用ADDNEW,都是在数据库的最下面添加,用movenext移到指定的位置后也不管用!请各位高人指教!急,在线等!
---------------------------------------------------------------

http://www.access911.net/index.asp?board=8&recordid=72FAB31E

在任意位置插入记录
--------------------------------------------------------------------------------

□ 作者: access911
□ E-Mail:
□ 主页地址:
□ 文件类型: rar
□ 文件大小: 19 KB
□ 更新日期: 2003-4-5
□ 下载地址: Download Now!

□ 说明:
如何在任意位置插入记录?

access911
2003-4-5 晚
http://access911.net

我们平时使用 ado的 recordset.addnew或者用 sql语句 insert into...来添加数据的时候,记录总是被添加在表的最后一行,如何才能把记录插入到其中某条记录的前面那?

我们先要来看一下显示记录的时候是如何操作的。一般,我们都使用自动编号字段来表示某条记录的唯一性(一般名字叫 id),而 select * from table order [id] 就是按添加的顺序来显示记录。
好了,知道了记录如何显示,我们就可以自己控制了,我们可以再添加一个字段,字段名字叫 orderid ,类型为长整型。当要在尾部添加记录的时候,我们用

INSERT INTO table (orderid) SELECT max(orderid)+1 FROM table

来做。当要在中间某条记录之前插入记录时,我们要做的就是先取得这条记录的 orderid,然后用

update table set orderid = orderid+1 where orderid >= 取得的orderid
insert into table (orderid) values(取得的orderid)

在显示的时候,如果要按照自己的顺序排列,就可以用 select * from table order by orderid

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus