【发布时间】:2014-10-21 21:08:56
【问题描述】:
我有一个 MS Access 数据库,其中有一个通过 ODBC 指向 SQL Server 实例的链接表。如果我尝试插入违反外键约束的行,我会收到一条相当丑陋的错误消息:“ODBC--call failed”,其中包含更多技术细节。
我可以截取这个错误信息并向用户提供更友好的解释吗?
【问题讨论】:
我有一个 MS Access 数据库,其中有一个通过 ODBC 指向 SQL Server 实例的链接表。如果我尝试插入违反外键约束的行,我会收到一条相当丑陋的错误消息:“ODBC--call failed”,其中包含更多技术细节。
我可以截取这个错误信息并向用户提供更友好的解释吗?
【问题讨论】:
您可以将错误处理放在表单级别,如下所示:
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
【讨论】: