为什么ACCESS数据库里的表插入记录的一个问题,非常奇怪?

时间:2022-09-08 15:16:42
ACCESS数据库的一个表里开始有一些记录,然后进行插入几个记录时发现,后插入的
记录没有放在最后面,而且不规律的在以前记录的之间,为什么?
如何把后插入的记录放在后面?
另外ACCESS如何排序?如何编程实现(比如,让数据库的表按照几个字段排序)?

12 个解决方案

#1


用SQL语句,Order By

#2


可否举例说明,多谢!

#3


看看数据库原理吧      关系型数据库数据的存放顺序是没有固定的
创建视的是或你可以加一些排序的指令

#4


sql * from table where ... order by 某一字段

#5


可能有索引

#6


我想你是用了insert方法,你可以使用rs.addnew,rs是个已经定义好的recordset。因为addnew方法是往数据库的记录尾追加一条记录。而insert是插入数据记录,你试试吧!下面是个例子你看看吧,这可是绝对行的呀!
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase("C:\word.mdb")
    Set rs = db.OpenRecordset("select * from design", dbOpenDynaset)
    rs.addnew
    rs("localport") = Text1.Text
    rs("remoteport") = Text2.Text
    rs("remotecomputer") = Text3.Text
    rs.Update
    rs.Close
    db.Close
   另外应该注意这里使用到了到了一些控件是必须的,另外还需要DATA控件或者引用Microsoft DAO 2.0/3.51 campability libray.
   关系型数据库数据的存放顺序是没有固定的,创建视的是或你可以加一些排序的指令
例如:select * from design where remotecomputer='192.168.0.6' order by localport

#7


对上面例子解释再补充一下:其中word.mdb 是一个access97的数据库,design是库中的一个表。
这个例子是局域网聊天室(也可以说是网络机器中的消息传送)中的本地机器和远程机器的IP地址和端口设置。localport:本地机器的端口号,remotecomputer:远程机器(也就是说对方)机器名或者IP地址。remoteport:当然就是远程机器的端口了。
    上面例子是这样的,先定义db,rs两个对象,然后用他们打开数据word.mdb中的表design,之后在往表中的字段写入在窗体中的text空间的设置端口和机器名到数据库中,就完成设置了,聊天室就可以通过聊天界面进行正常聊天了。

#8


我用的是connection对象的insert方法插入记录,这个方法和用recordset方法插入记录有什么
区别吗?

#9


我发现用Conncection对象的方法比recordset对象方法简单!
因为用Conncection对象的方法只用一条语句就可以了,虽然比较长一些!
可是用recordset对象方法就麻烦一些,需要很多条语句!

#10


为什么我一定要用conncection方法呢,因为我一次大概要插入大约50多个记录,所以一定要用
conncection对象方法!

#11


你要想实现插在数据库后面,对于数据库来说是不合理的,但是你可以在数据库中定义一个识别种子,自动增加的。那么你每次插入时,它会自动增加的,你取出时,只要按这个识别种子排序就可以了。

#12


你的数据库是不是建立了主索引,去掉他,TRY AGAIN

#1


用SQL语句,Order By

#2


可否举例说明,多谢!

#3


看看数据库原理吧      关系型数据库数据的存放顺序是没有固定的
创建视的是或你可以加一些排序的指令

#4


sql * from table where ... order by 某一字段

#5


可能有索引

#6


我想你是用了insert方法,你可以使用rs.addnew,rs是个已经定义好的recordset。因为addnew方法是往数据库的记录尾追加一条记录。而insert是插入数据记录,你试试吧!下面是个例子你看看吧,这可是绝对行的呀!
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase("C:\word.mdb")
    Set rs = db.OpenRecordset("select * from design", dbOpenDynaset)
    rs.addnew
    rs("localport") = Text1.Text
    rs("remoteport") = Text2.Text
    rs("remotecomputer") = Text3.Text
    rs.Update
    rs.Close
    db.Close
   另外应该注意这里使用到了到了一些控件是必须的,另外还需要DATA控件或者引用Microsoft DAO 2.0/3.51 campability libray.
   关系型数据库数据的存放顺序是没有固定的,创建视的是或你可以加一些排序的指令
例如:select * from design where remotecomputer='192.168.0.6' order by localport

#7


对上面例子解释再补充一下:其中word.mdb 是一个access97的数据库,design是库中的一个表。
这个例子是局域网聊天室(也可以说是网络机器中的消息传送)中的本地机器和远程机器的IP地址和端口设置。localport:本地机器的端口号,remotecomputer:远程机器(也就是说对方)机器名或者IP地址。remoteport:当然就是远程机器的端口了。
    上面例子是这样的,先定义db,rs两个对象,然后用他们打开数据word.mdb中的表design,之后在往表中的字段写入在窗体中的text空间的设置端口和机器名到数据库中,就完成设置了,聊天室就可以通过聊天界面进行正常聊天了。

#8


我用的是connection对象的insert方法插入记录,这个方法和用recordset方法插入记录有什么
区别吗?

#9


我发现用Conncection对象的方法比recordset对象方法简单!
因为用Conncection对象的方法只用一条语句就可以了,虽然比较长一些!
可是用recordset对象方法就麻烦一些,需要很多条语句!

#10


为什么我一定要用conncection方法呢,因为我一次大概要插入大约50多个记录,所以一定要用
conncection对象方法!

#11


你要想实现插在数据库后面,对于数据库来说是不合理的,但是你可以在数据库中定义一个识别种子,自动增加的。那么你每次插入时,它会自动增加的,你取出时,只要按这个识别种子排序就可以了。

#12


你的数据库是不是建立了主索引,去掉他,TRY AGAIN