電子書籍の厳選無料作品が豊富!

こんにちは

どなたか教えていただけると非常に助かります。

VB2008で簡単なMSアクセス2010と連携した在庫管理システムを作成しました。(Win7の32bitPCで開発しました)

32bitPCでは問題なく動作しましたが64bitPCでは以下のエラーメッセージが表示され使用できませんでした。

---------------------------------------------------------------------
Microsort .NET Framework
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました、[続行]をクリックすると、アプリケーションはこのエラーを無視しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。

プロバイダーが見つかりません。正しくインストールされていない可能性があります。
---------------------------------------------------------------------

[続行]を押すて進むと、今度は以下のエラーメッセージが表示されます。

---------------------------------------------------------------------
在庫管理システム
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました、[続行]をクリックすると、アプリケーションはこのエラーを無視しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。

この操作を実行するために接続できません。このコンテキストで閉じているかあるいは無効です。
---------------------------------------------------------------------



インストーラの作成方法に誤りがあるのでしょうか。
どなたかわかる方、ご教授お願いします。

A 回答 (3件)

"Any CPU" でコンパイルしてるのなら構成マネージャでプラットフォームを新規作成して明示的に "x86" を選択すると良いかと。


x86 でコンパイルされてアプリケーションは 32bit版となるので、Access DB にアクセスするためのドライバも 32bit版が使用されると思います。

この回答への補足

ご連絡が遅くなり申し訳ありません。
ご教授いただいた内容を確認してみます。


また、こちらに大変恐縮ですが補足させてください。

みなさんからご教授頂いた内容をもとに修正(本編のプログラムも今回の件に関係なく修正しています)を行っていましたが、別のエラーが発生してしまい、今度は32bitPCでも起動できなくなってしまいました。
※32bitデスクトップでは問題なし、32bitノートではエラーが発生します。

以下にエラー内容を載せますので、この件についてもご教授いただけないでしょうか。
よろしくお願いします。


---------------------------------------------------------------------------
Microsoft .NET Framework

アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。

型'ADODB.ConnectionClass'のCOMオブジェクトをインターフェイス型'ADODB.ConnectionClass'にキャストできません。IID
'{00001550-0000-0010-8000-00AA006D2EA4}'が指定されたインターフェイスのCOMコンポーネント上でのQueryInterface呼び出しのときに次のエラーが発生したため、この操作に失敗しました。インターフェイスがサポートされていません(HRESULTからの例外:0x80004002(E_NOINTERFACE))
---------------------------------------------------------------------------

よろしくお願いします。

補足日時:2011/07/22 10:35
    • good
    • 0

>プロバイダーが見つかりません。

正しくインストールされていない可能性があります。

OELDB接続であれば何をプロバイダとして指定していますか?
もしJet4.0を指定しているのであれば64ビット環境にはありません
またはこのエラーが表示される場合は
接続に利用できないプロバイダが指定されているはずです

参考URLにあるサイトで
AccessDatabaseEngine_X64.exe
をダウンロードしてインストールし
「Microsoft.ACE.OLEDB.12.0」をプロバイダとして指定してみてください
それで接続できるようになるかと思います

参考URL:http://www.microsoft.com/downloads/ja-jp/details …
    • good
    • 1
この回答へのお礼

お返事が遅くなり申し訳ありません。

指定方法は「Jet4.0」ではなく、「ACE.OLEDB12.0」を指定した状態となっております。
ご紹介いただいたサイトより64bitEngineをインストールして試してみようと思います。

ありがとうございました。

お礼日時:2011/07/22 10:23

ソリューションエクスプローラー →


プロジェクトのプロパティを表示

コンパイル → 詳細コンパイルオプション → ターゲットCPU

でビルドしてみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

お返事が遅くなり申し訳ありません。

ご教授いただいた内容を確認してみます。

ありがとうございます。

お礼日時:2011/07/22 10:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!