Ну например: если ошибка имеет код "400006" то выскакивает какое-нибудь сообщени, а если Run-time error с номером "20008" то конец программы.
Короче полный контроль над ошибками.
Реально ли это?
З.Ы.
- Код: Выделить всё
On Error Resume Next
On Error Resume Next
Private Sub Form_Load()
On Error GoTo hError:
Me.Left = "text"
hError:
Debug.Print Err.Number; Err.Description
End Sub
Sub OnErrorStatementDemo()
On Error GoTo ErrorHandler ' Enable error-handling routine.
Open "TESTFILE" For Output As #1 ' Open file for output.
Kill "TESTFILE" ' Attempt to delete open
' file.
On Error Goto 0 ' Turn off error trapping.
On Error Resume Next ' Defer error trapping.
ObjectRef = GetObject("MyWord.Basic") ' Try to start nonexistent
' object, then test for
'Check for likely Automation errors.
If Err.Number = 440 Or Err.Number = 432 Then
' Tell user what happened. Then clear the Err object.
Msg = "There was an error attempting to open the Automation object!"
MsgBox Msg, , "Deferred Error Test"
Err.Clear ' Clear Err object fields
End If
Exit Sub ' Exit to avoid handler.
ErrorHandler: ' Error-handling routine.
Select Case Err.Number ' Evaluate error number.
Case 55 ' "File already open" error.
Close #1 ' Close open file.
Case Else
' Handle other situations here...
End Select
Resume ' Resume execution at same line
' that caused the error.
End Sub
Sub SomeSubWithError()
On Error Goto ErrorHandler
Open "Z:\XXX\YYY\ZZZ.007" For Input as #1
Close #1
Dim E As Integer
E = 32769
Exit Sub
ErrorHandler:
If Error.Number= 53 Then
MsgBox "Кто-то что-то открыл, чего на самом деле нет!"
End If
If Error.Number = 6 Then
msgbox "Кто-то присвоил Integer переменной значение больше 32767"
End If
End Sub
Сейчас этот форум просматривают: Google-бот и гости: 29