スキップしてメイン コンテンツへ

 none
ACCESS2010でODP.NET若しくは、ADO.NETが利用できますか RRS feed

  • 質問

  • 現在、下記の環境でシステムを運用しています

    サーバOS
     WINDOWS SERVER 2012R2

    クライアントOS
     WINDOWS7 32ビット

    データベース
     Oracle 11g

    ACCESS2010でOO4Oを使用しORACLEに接続しています
    今回、クライアントOSをWINDOWS7 64ビットに変更
    OO4Oが64ビットに対応されていなので、ODP.NET若しくは
    ADP.NETを使用しOracleに接続を検討しています

    そこで、根本的なことなのですがACCESS2010のVBAでODP.NET(ADP.NET)が利用できますでしょうか
    もし使用できるのであれば、どのように行うのか、教えて頂けませんでしょうか

    2017年8月26日 4:06

回答

  • AccessというかOfficeには64bit版とは別に互換性のために32bit版が用意されています。OO4Oが64bit未対応ということであれば32bit版Accessを選択されてはどうでしょうか?
    • 回答としてマーク O2HG 2017年8月26日 7:21
    2017年8月26日 4:50
  • VBA は全く知らない自分がレスするのもなんですが・・・

    以下の記事の図にあるように、OO4O を含めて、64-bit OS の WOW 上ですべてを動かすということはできませんか?

    Part 1. 64 ビット Windows OS の基本知識
    https://blogs.msdn.microsoft.com/nakama/2008/10/30/part-1-64-windows-os/

    #佐祐理さんも同じことを言われているような気がします。


    • 編集済み SurferOnWww 2017年8月26日 6:16 誤字訂正
    • 回答としてマーク O2HG 2017年8月26日 7:22
    2017年8月26日 6:15
  • 確かに Office 2010 には 64bit 版がありますが、
    たとえ 64bit OS であったとしても 32bit 版 Office の導入が推奨されています。
    https://support.microsoft.com/ja-jp/help/2248011

    そして 64bit OS からであっても、32bit 版の VBA であれば ADODB や oo4o で接続できます。

    もし、どうしても 64bit 版の Access を使いたいというのであれば、
    ADODB で、Oracle 製の 64-bit Oracle Provider for OLE DB を使ってみてください。
    (Microsoft 製の OLE DB Provider for Oracle は 32bit 版しか無いと思います)
    あるいは、
    64bit ODBC Driver 経由での接続を検討してみてください。

    なお、ODP.NET は VBA から利用できるようには設計されていません。C# や VB.NET で中継用の ActiveX DLL を構築し、それを regasm しておくことで多段的に呼ぶことはできますが、その方法はデメリットの方が大きいのでおすすめできません。


    2017年8月26日 6:43

すべての返信

  • AccessというかOfficeには64bit版とは別に互換性のために32bit版が用意されています。OO4Oが64bit未対応ということであれば32bit版Accessを選択されてはどうでしょうか?
    • 回答としてマーク O2HG 2017年8月26日 7:21
    2017年8月26日 4:50
  • 早速のご回答ありがとうございます。

    OO4Oが64BitのOSでは動作保証されていないと思われます。

    2017年8月26日 5:23
  • VBA は全く知らない自分がレスするのもなんですが・・・

    以下の記事の図にあるように、OO4O を含めて、64-bit OS の WOW 上ですべてを動かすということはできませんか?

    Part 1. 64 ビット Windows OS の基本知識
    https://blogs.msdn.microsoft.com/nakama/2008/10/30/part-1-64-windows-os/

    #佐祐理さんも同じことを言われているような気がします。


    • 編集済み SurferOnWww 2017年8月26日 6:16 誤字訂正
    • 回答としてマーク O2HG 2017年8月26日 7:22
    2017年8月26日 6:15
  • 確かに Office 2010 には 64bit 版がありますが、
    たとえ 64bit OS であったとしても 32bit 版 Office の導入が推奨されています。
    https://support.microsoft.com/ja-jp/help/2248011

    そして 64bit OS からであっても、32bit 版の VBA であれば ADODB や oo4o で接続できます。

    もし、どうしても 64bit 版の Access を使いたいというのであれば、
    ADODB で、Oracle 製の 64-bit Oracle Provider for OLE DB を使ってみてください。
    (Microsoft 製の OLE DB Provider for Oracle は 32bit 版しか無いと思います)
    あるいは、
    64bit ODBC Driver 経由での接続を検討してみてください。

    なお、ODP.NET は VBA から利用できるようには設計されていません。C# や VB.NET で中継用の ActiveX DLL を構築し、それを regasm しておくことで多段的に呼ぶことはできますが、その方法はデメリットの方が大きいのでおすすめできません。


    2017年8月26日 6:43
  • すいません。

    質問内容が一部間違っていました。

    下記の環境での作成を検討しております。
    サーバーOSはWINDOWS SERVER 2012R2
    クライアントOSをWINDOWS10 64Bit
    データベースはOracle12.2

    クライアントOSをWINDOWS10 64Bitとしましたのは
    ORACLEのシステム要件からです。

    VBAからはODP.NET(ADO.NET)が使用できないとの、ご回答を頂きましたので
    再度、開発言語等を含めて検討いたします。
    ご回答者の、皆様、大変ありがとうございました。

    2017年8月26日 7:21
  • なお、ODP.NET は VBA から利用できるようには設計されていません。C# や VB.NET で中継用の ActiveX DLL を構築し、それを regasm しておくことで多段的に呼ぶことはできますが、その方法はデメリットの方が大きいのでおすすめできません。


    ラッパーDLL を作成して対応しようと考えていました。

    デメリットを教えてください。

    2017年9月7日 16:17
  • Cap. Kirk さん>

    スレ主の O2HG さんと同一人物ではないですよね? (同一人物であるとするとそれはそれで別の問題がありそうですが・・・)

    であれば、ご自分で別に新たなスレッドを立てて質問することをお勧めします。

    そうされる場合は、新たなスレッドにこのスレッドの URL を明記して、このスレッドに関連することを質問の最初に書いていただけれると話が通じやすいと思います。

    あと、質問する際のガイドラインが出ていますので目を通していただければと思います。
     
    フォーラムのご利用方法(質問の投稿)について
    https://social.msdn.microsoft.com/Forums/ja-JP/b2074c04-2e91-414d-8e9e-d634be311e31


    • 編集済み SurferOnWww 2017年9月8日 1:22 誤記訂正
    2017年9月8日 1:21
  • アドバイトいただきありがとうございます。

    別スレッドを立てます。

    2017年9月9日 6:28