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
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
吧
应改为
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
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
吧
应改为
ElseIf 1 < A and A < B Then
吧
#7
On Error Resume Next
那你还怎么知道出错呢?
那你还怎么知道出错呢?
#8
遇到同样问题,求解