Déterminer la cause réelle de ODBC échec (erreur 3146) avec ms-access?
Mon client est à l'aide de l'Accès comme un front-end pour une base de données SQL Server. Ils ont récemment commencé à recevoir ODBC - 3146 erreurs de temps à autre lors de l'exécution de certains rapports. À partir de ce que je peux dire, c'est juste un generic ODBC échec de l'appel d'erreur.
J'ai essayé de coller une gestion d'erreur dans le script VB qui lance les rapports, mais je ne suis pas d'avoir un peu de chance, plus d'informations sur l'erreur.
Code ressemble un peu à ça.
Public Function RunReports()
On Error GoTo MyErrorTrap
DoCmd.OpenReport "blah", acViewPreview
DoCmd.Close
DoCmd.OpenReport "foo", acViewPreview
DoCmd.Close
Exit_function:
Exit Function
MyErrorTrap:
Dim errX As DAO.Error
Dim MyError As Error
If Errors.Count > 1 'This always seems to be 0, so no help
For Each errX In DAO.Errors 'These are empty even if dont check for Errors.Count
Debug.Print "ODBC Error"
Debug.Print errX.Number
Debug.Print errX.Description
Next errX
Else
Debug.Print "VBA Error"
Debug.Print Err.Number
Debug.Print Err.Description
End If
'Also have tried checking DBEngine.Errors, but this is empty too
End Function
J'ai aussi activé le suivi sur le ODBC côté, mais qui a entravé les choses de manière trop, et je suis en mesure de recréer l'erreur ODBC.
Je suis complètement à l'écoute des suggestions sur la façon de diagnostiquer ce.
Vous devez vous connecter pour publier un commentaire.
Utiliser le
DbEngine.Errors
collection.Pour activer ce code, assurez-vous en VBA paramètres de gestion d'erreur est activé.
dbEngine
erreur. Pouvez-vous donner plus de détails? Probablement besoin de son propre poste.Error
objet de trop. Il est plus sûr d'utiliserDAO.Error
.