DOBON.NETプログラミング道掲示板

ツリー一括表示

Nomalアイコン Vb.netからAccessへの接続について /さだきち (19/04/17(Wed) 18:39) #34232
Nomalアイコン Re[1]: Vb.netからAccessへの接続について /魔界の仮面弁士 (19/04/17(Wed) 19:20) #34234
Nomalアイコン Re[1]: Vb.netからAccessへの接続について /Hongliang (19/04/17(Wed) 19:13) #34233
  └Nomalアイコン Re[2]: Vb.netからAccessへの接続について /さだきち (19/04/18(Thu) 10:30) #34235 解決み!


親記事 / ▼[ 34234 ] ▼[ 34233 ]
■34232 / 親階層)  Vb.netからAccessへの接続について
□投稿者/ さだきち 一般人(3回)-(2019/04/17(Wed) 18:39:20)
  • アイコン環境/言語:[VB.NET、Access(accdb)] 
    分類:[.NET] 

    VB.netからAccessに接続するアプリのコンバージョンを行っています。

    旧版: "Provider=Microsoft.Jet.OLEDB.4.0;"
    今回: "Provider=Microsoft.ACE.OLEDB.12.0;"

    「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」
    をインストールすることで、今回のバージョンも無事動作しました。

    しかし、旧版は特にAccessランタイム等をインストールすることなく、
    DLLの参照だけで動作していたようです。

    Microsoft.ACE.OLEDB.12.0を用いた接続でも、
    何らかのDLLを参照することで、
    別途インストールをしなくてもアプリを動作させることが可能でしょうか?

    (以前のバージョンでは、Interop.ADODB.dllを参照しているようです)


違反を報告
[ □ Tree ] 返信 削除キー/

▲[ 34232 ] / 返信無し
■34234 / 1階層)  Re[1]: Vb.netからAccessへの接続について
□投稿者/ 魔界の仮面弁士 大御所(1225回)-(2019/04/17(Wed) 19:20:52)
  • アイコンNo34232に返信(さだきちさんの記事)
    > しかし、旧版は特にAccessランタイム等をインストールすることなく、
    > DLLの参照だけで動作していたようです。

    それは、たまたまその実行環境に、Microsoft.Jet.OLEDB.4.0 が
    インストールされていたからに過ぎません。
    (Jet Provider は、古いバージョンの Office や MDAC の一部に同梱されていました)


    しかし最近の環境だと、Microsoft.Jet.OLEDB.4.0 がインストールされて
    いないことも珍しくありません。
    また、Jet Provider には 32bit 版しかなく、.accdb 形式にも非対応です。

    サポート期限的な問題もありますから、基本的には Ace Provider に
    乗り換えることをお奨めします。

    https://www.microsoft.com/ja-jp/download/details.aspx?id=13255
    https://www.microsoft.com/en-us/download/details.aspx?id=54920




    >(以前のバージョンでは、Interop.ADODB.dllを参照しているようです)
    Interop.* は、.NET から ActiveX コンポーネントを呼び出すための中継役です。
    (ActiveX コンポーネント本体は、別途インストール済みでなければなりません)
違反を報告
[ 親 34232 / □ Tree ] 返信 削除キー/

▲[ 34232 ] / ▼[ 34235 ]
■34233 / 1階層)  Re[1]: Vb.netからAccessへの接続について
□投稿者/ Hongliang 大御所(559回)-(2019/04/17(Wed) 19:13:31)
  • アイコン現在のところ、ACEプロバイダはWindows組み込みとはなっていませんね。そんな計画も特にないんじゃないでしょうか。
    // とりあえず32/64bitの両プロバイダを併存できるようにしないと組み込めないだろうなぁ。できるかどうか知らないけど。
    なので、少なくともMicrosoft.ACE.OLEDB.12.0を使用するならACEプロバイダのインストールは必須です。
    ACEプロバイダを使わないでaccdbにアクセスできるライブラリがあればいいんですが、私は知りません。とりあえずNuGetにはなさそうでした。

    ちなみに、ADO.NET(System.Data.*)を使う限りはJETにせよACEにせよInterop.ADODB.dllは不要ですし、プロバイダの話とは関係ありません。
    「旧版」というのがどういうことをやっていたのか知りませんが、JETプロバイダはWindows組み込みなので、プロバイダのインストールなく使用できていたということです。
違反を報告
[ 親 34232 / □ Tree ] 返信 削除キー/

▲[ 34233 ] / 返信無し
■34235 / 2階層)  Re[2]: Vb.netからAccessへの接続について
□投稿者/ さだきち 一般人(5回)-(2019/04/18(Thu) 10:30:43)
  • アイコンHongliang様、魔界の仮面弁士様、ありがとうございます。
    お二人とも分かりやすく説明いただき理解できました。

    ACEプロバイダをインストールする方向で検討したいと思います。

解決み!
違反を報告
[ 親 34232 / □ Tree ] 返信 削除キー/


Mode/  Pass/


- Child Tree -