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循环是个死循环!!!
...全文
427打赏收藏
关于记录集的疑惑,帮帮忙!
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循环是个死循环!!!
我换了种写法搞定了啊!
但我还是想研究一下这是为什么!!!!
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
大家研究一下吧!我也想知道为什么!
修改后运行通过,且数据库删除及写入成功,全部代码如下
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