access在中间位置插入记录问题

hdtyx 2003-06-26 09:17:29
access的表中如何在中间位置插入一条记录?(因为,它每次总是插入到最后一条的位置)
...全文
894 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maple119 2003-06-28
  • 打赏
  • 举报
回复
很抱歉地告诉你,Access不支持在在中间插入数据.只支持在尾部追加数据.
现在很多数据库都是这样的.
所以建议你别钻牛角尖了.

上面的朋友也提过.以索引的办法解决显示顺序问题.这也是一种办法.建议使用.
cheny1234 2003-06-28
  • 打赏
  • 举报
回复
楼主吃得太饱了. :)
hdtyx 2003-06-27
  • 打赏
  • 举报
回复
没有了吗办法?
hdtyx 2003-06-27
  • 打赏
  • 举报
回复
我要在access中这么作行吗?
(不能导出导入的,也不通过coder)是不是access没有这个功能?
zhengjialon 2003-06-27
  • 打赏
  • 举报
回复
如何在任意位置插入记录?


我们平时使用 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
zhengjialon 2003-06-26
  • 打赏
  • 举报
回复
物理位置是改不了的。
caishenye 2003-06-26
  • 打赏
  • 举报
回复
用insert
hdtyx 2003-06-26
  • 打赏
  • 举报
回复
我要在中间插入。
zhengjialon 2003-06-26
  • 打赏
  • 举报
回复
位置在哪里没有区别,问题是你后来查询的时候再根据你的要求排序就行了。
changechange 2003-06-26
  • 打赏
  • 举报
回复
http://a9.shtip.com.cn/index.asp?board=8&mode=3&recordid=72FAB31E
lnhsgj 2003-06-26
  • 打赏
  • 举报
回复
不知你要这样是为什么。

要想达到你的要求。可以这样:
1、建一个与你要操作的数据库结构相同的空库。备用。
2、要插入数据时,先将插入位置前的记录读出,写入到空库。再写入要插入的记录。接着将要插入记录后面的也写入到备用库。
3、将原库清空,将备用库的内容再写回到原库中。再将备用库清空。或干脆进行一些改名等操作,只要能保证程序下一次可以找到库文件和空库就可以。
 
这样做只适合于记录不多的情况,如果记太多的话,不知程序要慢到什么程度了。


如果你对文件操作和数据结构(物理的)很熟的话。可以采用随机方式打开数据文件,插入记录并修改记录的相关索引。这样做很麻烦且危险。

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧