Может ли сообщение об ошибке "Ошибка вызова ODBC" быть перехвачено и представлено как более дружественное сообщение об ошибке?

У меня есть база данных MS Access со связанной таблицей, указывающей на экземпляр SQL Server через ODBC. Если я пытаюсь вставить строку, которая нарушает ограничение внешнего ключа, я получаю довольно уродливое сообщение об ошибке: "ODBC- сбой вызова" с дополнительными техническими подробностями.

Могу ли я перехватить это сообщение об ошибке и представить пользователю более дружественное объяснение?

1 ответ

Вы можете поместить обработку ошибок на уровне формы, например так:

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Const conDuplicateKey = 3146
    Dim strErrMsg As String

    Select Case DataErr
        Case conDuplicateKey:
            strErrMsg = "Record already exists in the database!"
        ' TODO: add other error codes
        Case Else
            Response = acDataErrDisplay
    End Select

    If strErrMsg <> vbNullString Then
        MsgBox strErrMsg, vbCritical, Me.Caption
        ActiveControl.Undo
        Response = acDataErrContinue
    End If
End Sub
Другие вопросы по тегам