If Not (RsIn.EOF And RsIn.BOF) Then
Do While Not RsIn.EOF
If RsIn!trackno = StrTrackno Then
RsIn.Delete
Else
i = i + 1
RsIn!no = i
End If
RsIn.MoveNext
Loop
RsIn.Update
End If
现在这DO LOOP循环是个死循环!!!
Do While Not RsIn.EOF
If RsIn!trackno = StrTrackno Then
RsIn.Delete
Else
i = i + 1
RsIn!no = i
End If
RsIn.MoveNext
Loop
RsIn.Update
End If
现在这DO LOOP循环是个死循环!!!
解决方案 »
- 关于重叠透明水印到图片的API
- 创建新表时,如果表名重复则覆盖该表?
- 怎么加快速度,求算法
- 谁能解释一下在MSHFlexGrid1控件中的毛病。
- 急问关于datagrid和recordset的配套使用问题!在线等!送50分!
- 如果在SQL SERVER中设定一个Application roles,那在VB中该如何应用?
- vb 如何发送打印机命令?********************
- 急!!!求教COM+开发时在DLL中数据库连接的设置 500分相送
- 救救我,我不能开始iis工程!
- VB中取得键盘当前输入值的函数是什么?
- 如何在evb3中实现用按扭模拟小键盘
- 教教偶吧,谢谢哥哥姐姐们~~~~~!!
Do While Not rs.EOF
If rs!Name = "'张三'" Then
rs.Delete
Else
i = i + 1
rs!住址 = i
End If
rs.MoveNext
Loop
rs.Update
'BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
End If在最后的Update时候报错,因为记录集已经移动到了EOF
而且数据更新了很多条,需要使用rs.UpdateBatch才行修改后运行通过,且数据库删除及写入成功,全部代码如下
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
If cn.State = 1 Then
cn.Close
End If
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb"
Text1.Text = ""
Dim strSQl As String
Dim i As Integer
strSQl = "select * from students "
rs.Open strSQl, cn, adOpenDynamic, adLockOptimistic
If Not (rs.EOF And rs.BOF) Then
Do While Not rs.EOF
If rs!Name = "张三" Then
rs.Delete
Else
i = i + 1
rs!住址 = i
End If
rs.MoveNext
Loop
rs.UpdateBatch
End IfEnd Sub
17
但是I值已经过千了啊!
好郁闷啊!
但我还是想研究一下这是为什么!!!!
Public Function FG_Stocko(StrTrackno As String) As Boolean
Dim StrSql As String
Dim Rs As New ADODB.Recordset
Dim Rsout As New ADODB.Recordset
Dim i As Integer
On Error GoTo errdo:
StrSql = "SELECT * FROM t_mmstockout WHERE trackno='" & Trim(StrTrackno) & " '"
If Rs.state = adStateOpen Then Rs.Close
Rs.Open StrSql, Conn, adOpenKeyset, adLockPessimistic
If Not (Rs.BOF And Rs.EOF) Then
Do While Not Rs.EOF
StrSql = "SELECT * FROM t_mmstockout WHERE drawingnumber='" & Rs!drawingnumber & "'AND " & _
" workcode='" & Rs!workcode & "'AND NOTE='" & Rs!note & "'order by no"
If Rsout.state = adStateOpen Then Rsout.Close
Rsout.Open StrSql, Conn, adOpenKeyset, adLockPessimistic
If Not (Rsout.EOF And Rsout.BOF) Then
Do While Not Rsout.EOF
If Rsout!trackno = StrTrackno Then
Rsout.Delete
Else
i = i + 1
Rsout!no = i
Rsout.Update
End If
Rsout.MoveNext Loop
End If
Rs.MoveNext
Loop
End If
FG_Stocko = True
Exit Function
errdo:
FG_Stocko = False
End Function
大家研究一下吧!我也想知道为什么!