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

2 min

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」と表示される場合の対処法・解決策

SEパパ

SEパパ

外資系IT企業SE職で2児の父ちゃん!職業柄かリサーチ&問題解決が好き。幅広いジャンルで「お悩み解決」記事を執筆中。月間最高24万PV。雑誌掲載。

読者様に役立つ情報提供を心がけています。

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA