Hej Ett exempel Har för mig att när ett fel upstår, tar det lite tid för vb att hantera det och hantera det. Så om inget fel upstår så är det snabbt. Men om ett fel uppstår kan det ta längre tid för vb att hantera det än det skulle gära att lägga in kod som unviker felet från att upstå...On Error Resume Next
Patrik som jag iofs. "tycker kommar med kloka inlägg".
Skrev att denna lösning på att kolla om ett recodset
är tomt är långsamt. Vad menas !
On Error Resume Next
rs.MoveFirst
If Err = 3021 Then _
MsgBox ("Recordset är tomt")
On Error Goto 0
mvh SvenSv: On Error Resume Next
On Error GoTo chkErr
rs.MoveFirst
On Error Goto 0
Exit sub
chkErr:
If Err = 3021 Then _
MsgBox ("Recordset är tomt")
End if
Resume next
Går snabbare när det inte är tomt.
MVh Leif PSv: On Error Resume Next
On Error Resume Next är lite farligt, om det blir ett fel man inte förutsett och skall felsöka kan det ibland ställa till det. Om man vill h det beteendet kan man istället göra på följande sätt.
Private Sub Test
On Error Goto Test_Err
Exit sub
Test_Err:
Debug.Print Err.Number & ": " & Err.Description
Resume next
End Sub
Lite fräckare variant som kan vara bra i störe projekt:
#Const DebugMode = True
Private Sub Test()
On Error GoTo Test_Err
Err.Raise 1, "Test"
Exit Sub
Test_Err:
#If DebugMode Then
Select Case MsgBox(Err.Number & ": " & Err.Description, vbAbortRetryIgnore, Err.Source, Err.HelpFile, Err.HelpContext)
Case vbAbort
'Stop
Exit Sub
Case vbRetry
Resume
Case vbIgnore
Resume Next
End Select
#Else
Resume Next
#End If
End Sub