質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

2回答

15238閲覧

(bit数が異なる場合においての)VBAでオラクルDBに接続する方法を教えてください

SY_yokohama

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2019/11/13 14:33

編集2022/01/12 10:55

Excelに書いた値をそのままDBにInsertしたいため、
下記のサイトを参考にVBAでOracleDBに接続しようとしたところエラーが発生しました。

https://qiita.com/Grawor/items/15ac6ec3a5aa5124136c

原因を自分なりに調べたところ、
ExcelとODBCのbitが異なるとエラーになるようでした。

・ドライバー名((Oracle社製)→{Oracle in OraClient12home1}とネットサービス名
を指定した後の.Openで

「実行時エラー'-2147467259(80004005)' オートメーションエラーです。エラーを特定できません。」
が発生。

以下を使用中↓↓
・Excelが32bit版 2019
・ODBCが64bit版 12c
(PCは64bit版でWindows10)

諸事情によりbitの変更はできないのですが、
それでもVBAでOracleDBに接続する方法はありませんでしょうか?

ご教授の程、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SY_yokohama

2019/11/13 15:11 編集

失礼しました。 リンクとエラー内容を修正しました。
guest

回答2

0

(1) DataDirect の ODBC を使う(有料)

https://www.progress.com/odbc/oracle-database

Progress DataDirect for ODBC for Oracle Wire Protocol Driver は Oracle Client に依存しません。

日本の代理店はアシストという会社のようです。
https://www.ashisuto.co.jp/datadirect/

(2) ODP.NET 管理対象ドライバの COM ラッパーを自作する

ODP.NET 管理対象ドライバ(Oracle.ManagedDataAccess) は、Oracle Client に依存しません。
COM ラッパーを作成すれば VBA から使えます。
ネットを探せば、サンプルが転がっているかもしれません。

(3) Oracle の 32bit クライアントをインストールし、32bit ODBC か OLEDB を使用する

64bit と 32bit は同居できます。

・TNS_ADMIN 環境変数を設定して同一の tnsnames.ora を使用する
・PATH 環境変数は、普段使うツールのビット数の PATH を優先する

私が思いつく選択肢は以上です。

投稿2019/11/14 02:31

KOZ6.0

総合スコア2622

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Oracle Instant Client の64ビット版と32ビット版を共存させる方法 Oracle Instant Client, Oracle Client の両方に使えると思いますが。

・ドライバー名((Oracle社製)→{Oracle in OraDb11g_home1}とネットサービス名

これは、Oracle11.1 or Oracle11.2 のものでは?

ODBCが64bit版 12c

これは、Oracle12.1 or Oracle12.2 のものでは?

Oracle11.2 Database Client インストレーション・ガイド for Microsoft Windows ソフトウェア要件
Oracle12.1 Database Client インストレーション・ガイド for Microsoft Windows ソフトウェア要件
Oracle12.2 Database Client インストレーション・ガイド for Microsoft Windows ソフトウェア要件

動作保証されている組み合わせを用意願います。

投稿2019/11/13 19:17

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SY_yokohama

2019/11/14 00:24

失礼しました。teratailへのコピペミスです。 Oracle12.2になります。ドライバー名も修正しました。 再度、ご回答を頂けるとありがたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問