私は、Oracle クライアントに付属のドライバーを使用して、次の接続で Oracle データベースにクエリを実行していました。
Set cn = New ADODB.Connection
cn.Open ("Provider=MSDAORA;" & _
"User ID=<userID>;" & _
"Password=<pass>;" & _
"Data Source=<servername>;" & _
"Persist Security Info=False")
...それは、pythonのcx_Oracleを介して同じデータベースへの接続を開始するまでです。私は完全に正しいとは限りませんが、動作させるには oracle インスタント クライアントをダウンロードして「インストール」(path と oracle_home に追加) する必要があったようです。残念ながら、私の vba コードが機能しなくなったようです。今私は得ています:。データベースに問題がないことを示唆する他のクライアントを使用してデータベースに接続できます。そのため、インスタント クライアントに関する何かが私の vba 接続を切断したに違いありません。
cx_Oracle と (excel) vba の両方を使用して Oracle データベースに接続している人々は、これに光を当てることができますか? セットアップはどのようなもので、どのドライバーをインストールしましたか? また、python および vba 環境と接続文字列をどのようにセットアップして動作させていますか? ありがとう!
編集:ここに少し追加情報があります。私の Excel は 32 ビットで、python 3.5 は 64 ビットです。私の Oracle クライアントは私の Excel で動作するので、それも 32 ビットであると想定する必要があります。今私が直面している問題は、cx_Oracle と 64 ビットのインスタント クライアントをインストールすると、cx_Oracle は機能しますが、vba が機能しなくなるということです。インスタント クライアントを削除すると、vba は正常に戻りますが、Python は (自然に) Oracle にアクセスできなくなります。