VB使用ADO操作数据库,现在要做数据库记录的移动,把最后一条记录移到第一条的位置
数据库中只有一个表,表中有两个字段,第一个字段是自动编号,有索引,第二个是文本,无索引我的思路是把要移动的记录和上一条交换,然后在再和上一条交换,如此用循环直到移动到第一条
现在把代码发出来,调试的时候出错,新手没有分,希望好心人帮帮忙Private Sub Command1_Click()
Dim Coon As Object
Dim RS As New ADODB.Recordset
Dim Temp01 As String
Dim Temp02 As String
Set Coon = CreateObject("ADODB.Connection")
Coon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;"
RS.Open "Select * From Test", Coon, 1, 3 '可读写
If RS.RecordCount <> 0 Then
RS.MoveLast '移到最后一条
Temp01 = RS.Fields(1)
Dim I As Integer
For I = 1 To RS.RecordCount
RS.MovePrevious
Temp02 = RS.Fields(1)
RS.Fields(1) = Temp01
RS.Update
RS.MoveNext
RS.Fields(1) = Temp02
RS.Update
RS.MovePrevious
I = I + 1
Next
End If
RS.Close
Set RS = Nothing
Coon.Close
Set Coon = Nothing
End Sub
数据库中只有一个表,表中有两个字段,第一个字段是自动编号,有索引,第二个是文本,无索引我的思路是把要移动的记录和上一条交换,然后在再和上一条交换,如此用循环直到移动到第一条
现在把代码发出来,调试的时候出错,新手没有分,希望好心人帮帮忙Private Sub Command1_Click()
Dim Coon As Object
Dim RS As New ADODB.Recordset
Dim Temp01 As String
Dim Temp02 As String
Set Coon = CreateObject("ADODB.Connection")
Coon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;"
RS.Open "Select * From Test", Coon, 1, 3 '可读写
If RS.RecordCount <> 0 Then
RS.MoveLast '移到最后一条
Temp01 = RS.Fields(1)
Dim I As Integer
For I = 1 To RS.RecordCount
RS.MovePrevious
Temp02 = RS.Fields(1)
RS.Fields(1) = Temp01
RS.Update
RS.MoveNext
RS.Fields(1) = Temp02
RS.Update
RS.MovePrevious
I = I + 1
Next
End If
RS.Close
Set RS = Nothing
Coon.Close
Set Coon = Nothing
End Sub
如果是查看数据,可以用"order by id desc/asc"进行排序