こんばんは。
nanana-blog管理人のナナナです
ブログを訪問し記事を読んでいただきありがとうございます。
私は仕事でExcelのVBAを使ってOracleデータベースからデータを取得しています。
以前使っていたWindows7のパソコンではExcel2013を使用していましたが、パソコンをWindows10に変更したタイミングでOfficeも新しくなりExcel2019を使うことになりました。
先日そのExcelでデータを取得しようとしたところ、「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」というエラーが発生してデータ取得ができなくなりました。
本日は「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」のエラーを解決した手順を紹介します。
目次
エラーが発生した環境
Windows10 64bit バージョン1809
Excel2019 32bit
Oracle Client 11g 32bit
エラー解決のために試したこと
Oracle Clientの再インストール
Oracle接続時のプロバイダーはOLEDBを使っています。
エラーに「正しくインストールされていない可能性があります。」とあり、OLEDBが正しくインストール出来ていないのかもしれないと思い、Oracle Clientの再インストールをしてみました。
しかしエラーは解消されず、同じエラーが発生しました。
OfficeをストアアプリからDesktopアプリに変更
現在使用しているパソコンのOfficeはプレインストール版で、初期インストールはMicrosoft Storeアプリ版のOfficeがインストールされていました。
これがいけないのかもしれないと思い、Microsoft Storeアプリ版をアンインストールしてDesktopアプリ版をインストールしてみました。
しかし同じエラーが発生しました。
プロバイダーを変更
Oracle Provider for OLE DBを使っていたのですが、これをMicrosoft OLE DB Provider for Oracle に変更してみましたが、解決しませんでした。
Oracle接続方法をOLEDBからODBCに変更したら接続ができた
接続プロバイダーをOLEDBからODBCに変更したところ、無事データの取得ができました。
ODBC接続するためにはパソコンに設定が必要です。
ODBCの設定
コントロールパネル ⇒ 管理ツール ⇒ ODBC Data Sources(32-bit) をダブルクリックします。

システムDSNタブの追加ボタンをクリックします。

Microsoft ODBC for Oracle を選択して完了ボタンをクリックします。

以下の画面が表示されるので、「データソース名」「ユーザ名」「サーバー」を入力してOKボタンをクリックします。
データソース名は適当な名前を付けてください。
ユーザ名はOracleに接続をするユーザIDを入力します。
サーバはtnsnames.oraのサービス名を入力します。

Excelの設定
Excelのシートを開き「Alt + F11」をクリックして「Visual Basic for Applications」を開きます。
ツール ⇒ 参照設定 を開きます。

Microsoft ActiveX Data Object 6.1 Library にチェックを淹れます。

VBAのコードでOracleに接続するコードは以下のように書きます。
Dim objCON As New ADODB.Connection Set objCON = CreateObject("ADODB.Connection") objCON.ConnectionString = "DSN=" & ODBCのデータソース名 & _ "; UID=" & Oracle接続のユーザID & "; PWD=" & Oracle接続のパスワード objCON.Open

最後に
いかがだったでしょうか。
本日はExcelのVBAを使ってOracleデータベースに接続する方法を紹介しました。
この設定で接続をした後、なぜかOLEDBで接続ができるようになりました。
次回接続時にまた接続できないと困るので、原因が分かるまではODBC接続にしようと思います。

そういえば、私が年収100万円アップした時にお世話になったところをシェアしますね★

私が以前転職活動で利用していたJACリクルートメントは業界3位の人材紹介会社です。
3,000社を超える外資系企業から依頼されている求人情報のほか、求職者の転職意欲に合わせた活動方法も紹介しています。
個別求人へのエントリー依頼や無料転職コンサルティングも行っているので、外資系企業への転職を考えている方にオススメです。