[ad_1]
Windows 7 上で何年も実行されている既存の VB.Net 2017 アプリがあります。これは Access データベースを使用しています。
システムは Windows 10 に更新され、access 2019 に更新されました。access 2016 と 2019 の 32 ビットと 64 ビットの両方の Office で失敗する場合。
エラー
3706 プロバイダーが見つかりません。 正しくインストールされていない可能性があります
アプリは 32 ビットなので、32 ビットのままにする必要があります。
接続文字列が最初に試行されました
プロバイダー = Microsoft.ACE.OLEDB.12.0; データ ソース = C:\ATX QBFILES\xxxxxx.mdb;
Windows 7で動作していたので試してみました
プロバイダー = Microsoft.ACE.OLEDB.15.0; データ ソース = C:\ATX QBFILES\xxxxxx.mdb;
何が欠けているのか正確に理解できず困っています。
何か案は?
皆さんに感謝とハッピーホリデーを。
私が試したこと:
接続文字列の値を 12 から 15 および 16 に変更します。Access のさまざまなバージョン。
解決策 1
推測では、アプリとおそらくソースがなければ、それがすべてであるため、サイズの問題です。 Win7 は 32 ビットですか、それとも 64 ビットですか? VB アプリは 32 ビットで、現在 64 ビット バージョンの ACE DB エンジンを使用して 64 ビット上で実行されているか、アプリが 64 ビット環境下で 32 ビット ACE エンジンを搭載した「任意の CPU」であるのではないかと思います。 OS。
アプリが起動すると「プロセッサ サイズを切り替える」ことはできません。そのため、64 ビット アプリは 32 ビット エンジンを使用できず、その逆も同様です。
64 ビット ACE エンジンをインストールし、64 ビット専用の VB アプリを再構築して、何が起こるかを確認します。
解決策 2
ACE 接続文字列の使用をあきらめ、代わりに使用しました
"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\mydatabase.mdb"
私の32ビットアプリでは64ビットアクセスで動作しました。 32 アクセスのテスト用 64 ビット アプリでも動作しました。
なぜこれがそんなに難しいのか理解できません。
解決策 3
私も同じ問題を抱えています。 ラップトップ顧客にアプリをインストールします。 リモート。
彼のスタッフのラップトップにインストールすると成功しました。 しかし、彼にインストールするときに失敗しました。
メッセージは「プロバイダーが見つかりません」です。
私の提案は次のとおりです。
1.ウィンドウ11。
2.オフィス2019。
最後に、彼のラップトップで実行してコンパイルする必要があるかもしれません。 私のやり方で失敗したら。
[ad_2]
コメント