「ODBC--呼び出しが失敗しました」の原因に関する詳細情報を取得します。エラーDBEngine.Errors
をループできます コレクションを作成し、もう少し説明的なメッセージが他にあるかどうかを確認します。たとえば、コード
qdf.Connect = strConnectionString
qdf.SQL = " EXEC [dbo].[SAMPLE_TEST]"
qdf.ReturnsRecords = True
On Error GoTo oops
Set rst = qdf.OpenRecordset
Debug.Print rst!RecordCount
rst.Close
Set rst = Nothing
Exit Sub
oops:
Dim dbeError As Error
For Each dbeError In DBEngine.Errors
Debug.Print "(" & dbeError.Number & "): " & dbeError.Description
Next
End Sub
VBAイミディエイトウィンドウに次のように表示される場合があります。
(229): [Microsoft][ODBC SQL Server Driver][SQL Server]The EXECUTE permission was denied on the object 'SAMPLE_TEST', database 'myDb', schema 'dbo'.
(3146): ODBC--call failed.
確かに
オブジェクト「SAMPLE_TEST」、データベース「myDb」、スキーマ「dbo」に対するEXECUTE権限が拒否されました。
単なる
よりもかなり役に立ちますODBC--呼び出しに失敗しました。