求助,VB程序在调试状态下可以正常执行,但运行状态下却不能正常运行,这是为什么?

时间:2022-09-29 13:09:35
程序代码如下:
Private Sub cmd_del_Click()                             '"删除"按钮单击事件代码
        On Error Resume Next
        
        
        Dim A, B, C, D, E, F
        Select Case MsgBox("是否删除当前记录?", vbYesNo + 32, "删除记录")
            Case vbYes
        
                ExeCutesql "delete from 收录 where 序号= " & Text4.Text & "", Str_text
                
                Call Db
                Mydb.Update
                
                
                Set Count2 = ExeCutesql("select * from 收录", Str_text)
                Count2.MoveLast
                A = Mydb.RecordCount
                
                B = Count2.Fields(6)
            
                If A = 1 And B > 1 Then
                    ExeCutesql "update 收录 set 序号 = 1", Str_text
                
                ElseIf 1 < A < B Then
                    Count2.MoveFirst
                    For i = 1 To A - 1
                        
                        C = Count2.Fields(6)
                        Count2.MoveNext
                        
                        D = Count2.Fields(6)
                        If C < D - 1 Then
                            ExeCutesql "select * from 收录 where 序号 = " & D & "", Str_text
                            ExeCutesql "update 收录 set 序号 = " & C + 1 & " where 序号 = " & D & "", Str_text
                        End If
                        Next i
                End If
                Count2.MoveLast
                E = Mydb.RecordCount
                F = Count2.Fields(6)
                
                Set Mydb = ExeCutesql("select * from 收录", Str_text)
                Set MSHFlexGrid1.DataSource = Mydb
                
            Case vbNo
                frm_income.Show
        End Select
End Sub

8 个解决方案

#1


最好不要用On Error Resume Next,而是用on error goto 跳转

#2


编码过程中,当你不是100%地知道代码的执行情况时,那就先不要使用错误捕捉.

把所有错误提前曝露出来是好事.

#3


这代码看的是头疼。

ElseIf 1 < A < B Then
 

#4


问题可以这样描述:比如数据库中存在8条数据,我删除了第5条数据,我的目的是想把数据库中第6、7、8条数据的序号变为5、6、7,调试的时候可以,但正常运行的时候总存在一点的问题,即:第8条数据序号无法变为7

#5


你把on error去掉

#6


ElseIf 1 < A < B Then
应改为
ElseIf 1 < A and A < B Then

#7


On Error Resume Next

那你还怎么知道出错呢?

#8


遇到同样问题,求解

#1


最好不要用On Error Resume Next,而是用on error goto 跳转

#2


编码过程中,当你不是100%地知道代码的执行情况时,那就先不要使用错误捕捉.

把所有错误提前曝露出来是好事.

#3


这代码看的是头疼。

ElseIf 1 < A < B Then
 

#4


问题可以这样描述:比如数据库中存在8条数据,我删除了第5条数据,我的目的是想把数据库中第6、7、8条数据的序号变为5、6、7,调试的时候可以,但正常运行的时候总存在一点的问题,即:第8条数据序号无法变为7

#5


你把on error去掉

#6


ElseIf 1 < A < B Then
应改为
ElseIf 1 < A and A < B Then

#7


On Error Resume Next

那你还怎么知道出错呢?

#8


遇到同样问题,求解