0
Утренние помощники! У меня проблема с ошибкой обработки с помощью vba. Он работает нормально, когда возникает ошибка, проблема в том, что суб будет выполнять все, и я всегда получаю сообщение об ошибке, даже если у меня нет ошибки вообще! код:Метка ошибки, выполненная в любое время
Private Sub SaveEmployee_Click()
On Error GoTo Err_handlar
If List7.ListCount = 0 Then
Dim dial As String
dial = MsgBox("No employee was chosen. Quit the process?", vbYesNo, "No Entry!")
If dial = vbYes Then
DoCmd.Close
End If
Else
Dim i As Integer
Dim record As Recordset
Dim lname As String
Dim query As String
ReDim employeelist(List7.ListCount - 1)
For i = 0 To List7.ListCount - 1
lname = Right(List7.ItemData(i), Len(List7.ItemData(i)) - InStrRev(List7.ItemData(i), " "))
query = "Select EmployeeID from 0TBL_Employees where FirstName =trim('" + Left(List7.ItemData(i), Len(List7.ItemData(i)) - Len(lname)) + " ') and LastName=trim('" + lname + "')"
Set record = CurrentDb.OpenRecordset(query)
employeelist(i) = record!EmployeeID
Next i
For i = 0 To 1
MsgBox employeelist(i)
Next i
DoCmd.Close
End If
Err_handlar:
MsgBox "Error during doing the operation, please contact M&E unit!", vbOKOnly, "Fatal Error"
Exit Sub
End Sub
Как работает обработчик ошибок в vba? Я думаю, что прыжок в коде повлияет на производительность. спасибо большое @pterandon –
Я думаю, что постоянно сообщать пользователю, что есть фатальная ошибка, будет большая проблема с производительностью. ;-) Обработчики ошибок VBA живут в помеченном разделе между Exit Sub и End Sub. Таким образом, код обработки ошибок не выполняется, если не возникает ошибка. – pteranodon
lol Я бы передумал про ярлык «фатальный»: D –