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后提示“多步操作产生错误。请检查每一步的状态值”是什么原因?
或者哪为能写一段执行我这个功能的代码吗?
具体就是:任意选种DATAGRID中的一条数据,然后按下Command1后将选中的数据移动到第2条的数据位置,原来的第2条数据以及其他数据依次后移。注:是要改变在数据中的数据位置的,不是单纯的在DATAGRID中显示
vb循环语句
答案:2 悬赏:0 手机版
解决时间 2021-03-15 03:05
- 提问者网友:原来太熟悉了会陌生
- 2021-03-14 12:26
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-03-14 13:58
好了,给你调试完了。测试过的
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
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
全部回答
- 1楼网友:廢物販賣機
- 2021-03-14 14:36
循环语句包括for-next、while-wend、do-loop语句。 暂且先给你介绍一下这些语句的简单用法: for-next语句: for 变量 = 初值 to 终值 [step 步长] 循环体 next 当循环变量的值在初值到终值范围内时,执行一次循环体中的语句块,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行next后面的语句。for循环语句执行的流程图。其中, step 步长 可省略,省略时,步长=1. 例如: private sub form_activate() for i = 1 to 5 step 1 print i next end sub 在这个例子中,运行程序后,窗体上会写出如下文字: 1 2 3 4 5 解析: 变量i由初值1到终值5共循环5次,每次循环时,输出i,并且将i的值加上步长的值1.所以,但第二次循环式,i的值就变为2.循环5此后,i的值变为5.再循环时i就变为6,便超过了终值5,因此循环结束,vb开始运行next语句之后的代码。 do-loop语句: do 循环体 ...[exit do] loop 循环体会在do 与 loop 之间不停循环。exit do 语句可有可无,是为了设定当满足一定条件后,运行exit do 语句,即退出循环。 如: private sub form_activate() dim i as integer i = 1 do print i i = i + 1 '每次循环时都使i的值增加1 if i > 5 then exit do '当i的值大于5(即循环5此后)时,退出循环 loop end sub 其运行效果与上面的例子相同。 以上说明绝对不是复制的,给点辛苦分也行,谢谢~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯