AccessのOraclODBC接続で「SQL_HANDLE_ENVでのドライバのSQLAllocHandleは失敗しました。」と表示される場合の対処法・解決策

Windows7,8,10 32/64bit OS環境下でAccess 32bitのODBC(Oracle Client 10g/11g 32bit)接続を試みると「SQL_HANDLE_ENVでのドライバのSQLAllocHandleは失敗しました。」と表示されてしまい、ODBC経由でOracleテーブルをリンクできない。

このエラーの原因と対処法・解決策のメモです。

スポンサーリンク

状況とエラー内容

状況

  • ODBC データ ソース (32 ビット)上での接続テストはOK(tnsnames.oraなどの設定に問題なし)
  • AccessからODBCを使ってOracleテーブルに接続を試みるとエラー表示

エラー表示内容

[Microsoft][ODBC Driver Manager] SQL_HANDLE_ENV でのドライバーの SQLAllocHandle は失敗しました。

Access上でODBC データ ソース から適切なデータソースを選択し、Oracleに接続しようとすると、エラーが発生します。

原因と対処法・解決策

原因

「[Microsoft][ODBC Driver Manager] SQL_HANDLE_ENV でのドライバーの SQLAllocHandle は失敗しました。」との表示内容から、エラーメッセージが表示される現認を調べてみました。

結論だけ簡潔に記載します。

Access側の権限不足でOracleテーブルにアクセスできない

つまり、Accessに対して、適切な権限設定をすれば解決できるということです。

対処法・解決策

解決策①:Accessのプロパティで管理者設定

Accessのプロパティ画面を表示して、上図の赤枠内にチェックを入れ、適用をクリックします。

この設定をすることで、今後Accessは管理者権限で実行されますので、ODBC経由でOracleテーブルをリンクできるようになります。

解決策②:secpol.mscのセキュリティオプション変更

secpol.mscを実行すると、セキュリティオプションを設定する画面が開きますので、その中から、以下の項目を選択し、有効に設定します。

ユーザーアカウント制御:ビルトインAdministratorアカウントための管理者承認モード」を有効に設定

次に、ユーザーアカウント制御設定の変更画面を開き、下図の通りに設定します(デフォルト設定)。

まとめ

「SQL_HANDLE_ENVでのドライバのSQLAllocHandleは失敗しました。」エラーの対応方法として2つの対処法・解決策をご紹介しました。

これは余談ですが、ExcelでOracleODBC接続を実行する場合、対処法①では別の動作に支障がでますので、対処法②をオススメします。Accessの場合はどちらでも構いません。

その他のAccess関連記事

Windows10(64bit)でAccessのODBC接続ができない原因と対処法・解決策

AccessからSQL Serverへのリンクで「#Deleted」と表示される場合の対処法・解決策

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする