78291


お世話になります。

C#(4.5)を使用して、Accessのデータベースを操作するアプリを組んでいるのですが、  
他のPCで使用するにはそれぞれのPCにAccessDatabaseEngineをインストールしないと  
動かないとどこのサイト様でも書かれているのですが、これはどうしても必須なのでしょうか。

一台ごと、Officeのビット数を確認しながら上記のパッケージを入れなければならないのは  
非常に重荷だと感じるのです。Excelなどのアドオンを思い出してしまいます。

もし、回避しても動かす方法があればお教えください。

或いは、.Netのように、新しいバージョンが必要なときはダイアログなどが出てインストールを  
促すような方法でもあるならば、それでも良いかと思います。

なければないでソースでインストールするように促すので、できるかできないかをご助力  
いただきたいと思います。

よろしくお願いいたします。


CC BY-SA 4.0
2021-07-19T07:21:31.590
78290
2021-07-19T11:46:35.797
2021-07-19T07:46:39.127
3060
9374
question
c# .net ms-access
C#からAccessを操作するとき、OLEDBをインストールしなくても動かす方法


標準のJet4.0のOLEDBでは古いAccess(2003以下)のmdbしか扱えないので、事実上必須と思います。


CC BY-SA 4.0
2021-07-19T08:46:59.897
78291
2021-07-19T09:06:08.460
2021-07-19T09:06:08.460
41943
41943
78290
answer


ADO.NET を使って Access を操作するなら JET または ACE プロバイダは必須です。JET は OS 同梱なので扱うのが .mdb
ファイルに限るなら JET を使ってはいかが？ アプリを x86 でコンパイルしておけば済むはずです。

Access 2007 以降の .accdb ファイルを扱うなら ACE をインストールするほか手はないと思います。その場合は 32/64-bit
の煩わしさは避けられません。

（煩わしさとは、32-bit 版でないと Visual Studio のウィザードが使えない、32/64-bit 版は同じ PC
に共存できない、Office をインストール済みのユーザーは ACE もインストールされている・・・など）


CC BY-SA 4.0
2021-07-19T11:46:35.797
78297
2021-07-19T11:46:35.797
43387
78290
answer