vb循环语句

来源:百度知道 编辑:UC知道 时间:2024/05/22 22:42:22
Private Sub Form_Load()
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\01.mdb" & ""

rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open "select * from 001", cn
Set DataGrid1.DataSource = rs
End Sub

Private Sub Command1_Click()
'第一条数据不变,选中任意一条DATAGRID中的数据后将被选中的数据移动到第2条数据的位置,其它数据依次下移
a = rs.Fields(0)

rs.Requery
rs.MoveNext

b = rs.Fields(0)
rs.Fields(0) = a

rs.Update
rs.MoveNext

Do

a = rs.Fields(0)
rs.Fields(0) = b

rs.Update

If rs.EOF = True Then rs.Requery: Exit Sub

rs.MoveNext

b = rs.Fields(0)
rs.Fields(0) = a

rs.Update

Loop

rs.Requery

End Sub
当按下Command1后提示“多步操作产生错误。请检查每一步的状态值”是什么原因?
或者哪为能写一段执

好了,给你调试完了。测试过的

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Command1_Click()
a = rs.Fields(0)
rs.Delete
rs.MoveFirst
rs.MoveNext

b = rs.Fields(0)
rs.Fields(0) = a

Do While Not rs.EOF
rs.MoveNext
If Not rs.EOF Then
a = rs(0)
rs(0) = b
b = a
End If
Loop
rs.AddNew
rs(0) = b
On Error Resume Next
rs.Update
rs.MoveNext

rs.Requery
End Sub

Private Sub Form_Load()
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\aa.mdb"

rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open "select * from 001", cn
Set DataGrid1.DataSource = rs
End Sub

看了你的代码,可能是在修改数据库中的排序,可能有问题,给你一个解决思路:在数据库创建一个int数据类型的字段(长整形),比如叫排序,然后在DATAGRID添加一个这样的列,在修改排序时必须点击这个列的记录,然后用DATAGRID1.