Ứng dụng khách của tôi đang sử dụng Access làm giao diện người dùng cho cơ sở dữ liệu SQL Server. Gần đây, họ bắt đầu nhận ODBC - 3146 lỗi khi chạy một số báo cáo. Từ những gì tôi có thể nói, đây chỉ là một lỗi ODBC gọi chung không thành công.Xác định nguyên nhân thực sự của lỗi ODBC (lỗi 3146) với truy cập ms?
Tôi đã thử dán một số lỗi xử lý trong tập lệnh VB đang khởi chạy báo cáo, nhưng tôi không có bất kỳ may mắn nào nhận được thông tin lỗi bổ sung.
Mã trông hơi giống thế này.
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
Tôi cũng đã cho phép truy tìm ở phía ODBC, nhưng điều đó đã sa lầy điều xuống đường quá nhiều, và tôi cho đến nay không có khả năng tái tạo các lỗi ODBC.
Tôi hoàn toàn mở cho các đề xuất về cách chẩn đoán điều này.
Loại "Lỗi" của tôi không có .Number hoặc .Description - có phải là điều gì đó khác biệt không? – AnotherParker
Tôi cho rằng lỗi của bạn có thể không phải là lỗi 'dbEngine'. Bạn có thể cung cấp thêm chi tiết nào không? Có lẽ cần bài của riêng mình. – Smandoli