• ベストアンサー

ExcelとOracleの連携について

お世話になります。 Excelで[データ]-[外部データの取り込み]-[データの取り込み]-[新しいソース] -「ODBC DSN」-「接続するODBCデータソース」-「OracleDNS」 -「Oracle ODBCドライバ接続」ではOracleに接続する事は出来、データも Excel上に表示する事が出来ました。 しかし、下記HPの http://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html サンプルコードを元にVBAコードを作成したのですが、 'データベース接続処理がうまくいっていない様で、 Err_Han: ' エラー処理 MsgBox (Err.Description) で、「ORA-12154:TNS: 指定された接続識別子を解決できませんでした」 と言うエラーになってしまいます。 VBAにてADOの参照設定とかしていないのですが原因はそれでしょうか。 どなたかご親切な方、ご教示くださいます様、宜しくお願い致します。

  • Oracle
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • ytsg
  • ベストアンサー率58% (7/12)
回答No.3

No.2です。 >Excelで[データ]-[外部データの取り込み]-[データの取り込み]-[新しいソース] >-「ODBC DSN」-「接続するODBCデータソース」-「OracleDNS」 >-「Oracle ODBCドライバ接続」ではOracleに接続する事は出来、データも >Excel上に表示する事が出来ました。 なのだから、DSNはあるのですよね。すみません。 実を言うと、私は通常ADO+OLE DBを使っているのでODBCに関しては良くわかりません。 ・・・申し訳ありません ADO+OLE DB は特にソフトをインストールなどは必要ありません。 (「ADOの参照設定とかしていないのですが」とありますが、そのエラーならばActiveX Data Objects に参照設定されていると思います。それ以外の設定は特にありません) こちらの方が(oo4oよりは劣るにしても)パフォーマンスが多少良いとのことですし、一度試されてはいかがでしょうか。

miruchoko
質問者

お礼

ご回答頂き有難うございます。 ADO+OLE DBを試してみました。 そしてうまく行きました。 しかも処理が早かったです。 本当に有難うございました。

その他の回答 (3)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

#1です。ソースを見てないので、「その前段階をチェック」の方針で回答しますが。 TNSPINGが通ったのであれば、次はODBC単体でのテストを行ってみる。 ※エクスプローラの設定で、拡張子を表示できるようにしておいてください。 デスクトップででも、どこでも良いので、右クリック>新規作成で、新規テキストを作成。 名前は、ファイル名は何でも良いので拡張子をUDLとする。 (Universal Database Linkの略) 表+PCみたいなアイコンになるので、起動。 作成済みODBCソース名を選択して、接続IDとパスワードを設定して、「接続をテスト」。 接続文字列を新たにビルドすることもできます。 これも通るのであれば、後はアプリの問題です。

miruchoko
質問者

お礼

ご回答頂きありがとうございます。 エクスプローラの設定で、拡張子を表示できるようにする やり方が良く分かりません。 新規テキストを作成と言うのは、メモ帳で良いのでしょうか。 拡張子をUDLとしましたが、表+PCみたいなアイコンに なっていません。 とりあえず、ADO+OLE DBでうまくはいったのですが、 ご回答頂きました内容についてもう少し調べてみます。 有難うございました。

  • ytsg
  • ベストアンサー率58% (7/12)
回答No.2

>しかし、下記HPの >http://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html >サンプルコードを元にVBAコードを作成したのですが、 こちらに3種類のサンプルが提示されていましたが、このうちどちらを使いましたか? 一番初めのADO+ODBCをもとにして、DSNの設定がされていないのかもしれません。 ODBCを介さず2番目のADO+OLE DBで作成されたらどうでしょうか。

miruchoko
質問者

お礼

ご回答有難うございます。 サンプルは一番初めのADO+ODBCをもとにして 作成して見ました。 DSNの設定が必要なのですね。 出来ましたらどの様に設定したら良いか、 参考になる様なHPでもご紹介頂ければ ありがたいのですが・。 又、ODBCを介さず2番目のADO+OLE DBでの 作成は特に何かのソフトをインストールするとか は必要ないのでしょうか。又何か設定とか必要 なのでしょうか。 ど素人な質問ばかりで申し訳ございませんが、 ご教示下さいます様、宜しくお願い致します。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

コマンドプロンプトを開いて、TNSPINGを打ってみる。 このレベルで、エラーなら、アプリでも当然エラーになります。

miruchoko
質問者

お礼

有難うございました。 TNSPINGを打って見ましたら問題なく通りました。 何か別の原因の様ですね。

関連するQ&A

  • excelとoracleの連携

    お世話になります。 インターフェースにexcelを使用し、 oracleをデータベースとして活用した 仕組みを開発したいと考えております。 ネットで下記コードを参照しましたが、 excelのvbaを起動するpcから下記コードで 別のサーバー内のoracleに接続する際、 パスの記述はどの様にしたら宜しいのでしょうか。 また、CONNECTSTRINGに代入する文字列は oracleの何処を調べれば分かりますでしょうか。 なんとも初心者すぎる質問内容で大変恐縮 致しますが、何卒ご教示頂けます様、 宜しくお願い申し上げます。    記 Sub prcAdoOracleDB() Dim adoCON As New ADODB.Connection '(1)ADOを使いORACLEのDBを開きます adoCON.Open "Driver={Microsoft ODBC for Oracle};" & _ "CONNECTSTRING=ADRSORA; UID=HAPPY2; PWD=ISLAND;" '(2)データベースのクローズ adoCON.Close End Sub

  • excel>外部データで更新できない

    古い仕様ですが、Oracle8iとexcel2002でデータベースの集計をしています。 SQLが少々複雑なのでoracleにViewを作って、excelから外部取り込み(ODBC)を行っています。 1回目の取り込みはうまくいくのですが、データが更新したときに、excelで「更新」処理をしたところ内容は変更されませんでした。ところが、SQLplusを使ってViewを見ると値に変化があります。 Viewを作り直すとexcelのデータは更新します。 何とかexcelの「更新」だけで新しい情報が反映できないものでしょうか? ご存知の方、よろしくお願いいたします。

  • Oracle8i のODBCについて

    皆様のお知恵をお貸し下さい。 Oracle8からOracle8iへ移行した後、 ODBC経由でOracle接続を行なう アプリケーションについて "TNSが解決できません"のメッセージが 表示され、接続ができません。 (Oracle ODBC Test でも同等の結果でした) ちなみに OS:WindowsXP pro CPU:Pentium4(Famiry15) Tnsnames.ora/sqlnet.ora は定義済み です。 何とぞよろしくお願いいたします。

  • Excelを使用してSQLServerに接続

    主題の件について教えて下さい。 現在Excel2003のVBAを使用して、SQLServerにODBC接続し、 DBのテーブルデータを取得し、Excelに表示出来ないかを考えているの ですが、VBAの知識がほとんど皆無なので一向に進みません。 何か参考になるページなどありましたら教えてください。 理想はExcelのボタン一つでデータが取得出来れば良いのですが・・・。 よろしくお願いいたします。

  • EXCEL VBAでACCESSのデータを扱いたい(初心者です)

    EXCEL VBAを勉強している者です。VBAでコードを書いてACCESSのデータを抽出してEXCELでその抽出したデートを加工したい(すべてVBAでコードを書いて処理)のですが、よくわかりません。EXCEL VBAの書籍を数冊勉強したのでEXCELの中だけでデータを作ったり、加工したりは理解できているつもりです。ただ、今まで読んだ書籍には外部データベースに接続して、その後、処理をするといったことが書いてなかったので、まったく知識がありません。そこで、ACCESSへの接続の仕方、操作の仕方などについて、やさしく(私みたいな初心者でも理解できる)説明してあるサイトまたは書籍をご存知の方、お教えください。特に、今のところ、最初の接続のところがわからないので接続について詳しく説明してあるサイトなどお願いします。

  • リンクテーブル(Oracle)をAccessテーブルにコピーしたい

    質問があります。 ODBC経由でリンクしたOracleテーブルの内容をコピーしてAccessテーブルとして扱いたいのですが、うまくできません。 作ったテーブルは一時的なものとして扱い処理が終了次第削除するという使用方法となります。 VBAを使ってやろうと思うのですが、コードが今ひとつ解りません。 Docmd.ObjectCopyで試してみたのですが、コピーされたテーブルもリンク扱いとなってしまいました。 やり方は問わないので、なにか良い方法がありましたら回答よろしくお願いします。 環境:Access2000 :Oracle8.1.5です。

  • accessのドライバー表示

    Windows7にoracle client 11g(win64_11gR2_client.exe)を 入れ、コントロール パネル\すべてのコントロール パネル項目\管理ツール \データソース(ODBC)のドライバーにOracle in Oraclient11g_home1が表示され システムDSNからoracleサーバに接続できたのですが、 access2010の外部データ→ODBCデータベース→外部データの取り込み→ データソースの選択(コンピューターデータソース)→新規作成→データソースの新規作成→ データソースの新規作成(データソースのドライバー選択)でOracle in Oraclient11g_home1の ドライバーが表示されないのですがどうすればaccessのドライバー選択に表示されるようになるのでしょうか。

  • OracleDBへのODBC接続(Access)

    お世話になります WindowsXPSP3+Access2003SP3+OracleXEを使用して 顧客管理システムを作成しています 「Microsoft ODBC for Oracle」のデータソースを利用して Accessより接続を行っておりますが 「Oracle in XE」というデータソースで接続する必要があり そちらで接続したところ レポートのデータが一部出なくなってしまいました (「Microsoft ODBC for Oracle」に戻すと表示されます) ODBCの違いでこういった現象が出るものなのでしょうか? 宜しくお願い致します

  • MYSQLとEXCEL2003の接続エラー

    64bit windows7に、32bitのexcel2003を使用しています。 excel2003から外部データ取り込みで、MYSQLのデータを送受信できるようにしたいです。 ネットでは、mysql-connector-odbc-5.2.6-win32.msi と32bit版をインストールしたほうが良いとの書き込みを見たことがありますが、 mysql-connector-odbc-5.1.13-winx64.msi をインストールしないと、ODBCのデータソースにドライバーが出てきませんので、こちらをインストールしました。 写真のとおり、ユーザーDSN、システムDSNでは、ドライバーを追加して、コネクション-サクセスフルになるのですが、 実際 excel2003から、外部データの取り込みで、ODBCのデータソースを選択すると、データリンクプロパティ画面が現れてしまい、そこで設定を入力しても、写真のようなエラーが出てしまいます。 どのように対処すればよいか、アドバイスいただけないでしょうか。

  • MS EXCELのMicrosoft Queryの画面を表示できないようにするには?

    OFFICE2000に内包されているExcel2000を活用しています。 社内DBはIBMのiSeriesで、iSeries Access for Windows内にあるODBCドライバをインストールして、 EXCELの外部データベースへの接続機能でDBのデータをひっぱってきてから、VBで処理を行っています。 そこで質問なのですが、VBAのプロジェクトではパスワードを設定して、ソースが見られないように出来ます。 しかし、外部データベースへの接続という手段において、Microsoft Queryの編集画面をみられないようにする方法が分かりません。 もちろんパスワードをなどを設定してロックを掛けられる方法以外でもロックが掛けられればいいです。 やり方などありましたら是非教えて下さい。