I have seen many posters in the VB newsgroups that say they have received an ODBC error message such as 3146, but can’t figure out why they got the message. I suspect that the vast majority of these posters did not update their error-handling procedures to use the DBEngine.Errors collection when VB4 was released. Using this collection usually gives them all the error messages they need to resolve the problem. I have created an error-handling subroutine that displays the correct error message based on whether the error is a DB error:
Public Sub ShowError()Dim sError As StringDim nI As IntegerDim sTitle As String sError = "" ' Determine whether or not this is a ' database error If DBEngine.Errors.Count > 0 Then If DBEngine.Errors(DBEngine.Errors.Count - 1)._ Number = Err.Number Then sTitle = "Database Error" For nI = 0 To DBEngine.Errors.Count - 1 sError = sError & DBEngine.Errors(nI) & _ vbCrLf Next sError = sError & vbCrLf End If End If If sError = "" Then sTitle = "Error" ' add the error string sError = sError & Err.description & vbCrLf End If ' beep and show the error Beep MsgBox sError, , sTitleEnd Sub