none
XPで動いていたアプリが7(64)では動かない RRS feed

  • 質問

  • 今まで WindowsXPで使用していた自作アプリがWindows7(64)では 起動時に

    「[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。」

    のメッセージが表示され エラーになってしまいます。

    ODBC Driverとあるので
    コントロールパネル 管理ツール データソース のODBCデータソースアドミニスレーターの
    ドライバタブを見てみると SQL Serverしか はいっていません

    Officeのインストール方法かなと思い 再インストールしてみました
    使用しているOfficeは2003で インストール方法はすべてコンピューターから実行するようにしてみましたが
    インストールされませんでした。

    この自作アプリはVS2008エクスプレスでVBで作成し複数エクセルファイルからデータを取得しアクセスに保存しサマリーするだけです。

    XPでは普通に動くので 環境の問題だと思いますが どのようにすればWindows7(64)で動くようになるのか
    今の所 見つけれないです。
    2011年9月28日 21:07

回答

  • 64bit 用のドライバは多分 64bit 版の Excel を入れないとインストールされませんが、そもそも 2003 に 64bit 版なんて無かったような気がします。

    Download Details - Microsoft Download Center - Microsoft Access Database Engine 2010 Redistributable

    上記リンクから 64bit 版ドライバをダウンロードしてインストールするのが一つの方法です。

    もう一つは、そのアプリケーションを 32bit プロセスとして起動するよう変更することです(VB.NET アプリは既定では 64bitOS で実行されると 64bit プロセスとして起動します)。32bit プロセスは 32bit 版ドライバを使用します(32bit 版の ODBC ドライバは、/Windows/SysWoW64/odbcad32.exe で確認できます)。

    これはプロジェクトのターゲットを x86 に変更してビルドし直すだけで大丈夫ですが、確か Visual Studio Express だと VS 上からは指定できなかったような記憶があるので、直接 .vbproj ファイルをメモ帳とかで開いて、<Platform> 要素の中身を AnyCPU から x86 に書き換えれば良かったかと思います。

    • 回答としてマーク 山本春海 2011年10月6日 6:48
    2011年9月29日 0:13
  • ちなみにこういったトラブルを避けるために(と思われますが)、Visual Studio 2010からはデフォルトがApu CPUからx86に変更されているため、Windows 7 x64であっても32bitで動作します。
    • 回答としてマーク 山本春海 2011年10月6日 6:48
    2011年9月29日 1:34

すべての返信

  • 64bit 用のドライバは多分 64bit 版の Excel を入れないとインストールされませんが、そもそも 2003 に 64bit 版なんて無かったような気がします。

    Download Details - Microsoft Download Center - Microsoft Access Database Engine 2010 Redistributable

    上記リンクから 64bit 版ドライバをダウンロードしてインストールするのが一つの方法です。

    もう一つは、そのアプリケーションを 32bit プロセスとして起動するよう変更することです(VB.NET アプリは既定では 64bitOS で実行されると 64bit プロセスとして起動します)。32bit プロセスは 32bit 版ドライバを使用します(32bit 版の ODBC ドライバは、/Windows/SysWoW64/odbcad32.exe で確認できます)。

    これはプロジェクトのターゲットを x86 に変更してビルドし直すだけで大丈夫ですが、確か Visual Studio Express だと VS 上からは指定できなかったような記憶があるので、直接 .vbproj ファイルをメモ帳とかで開いて、<Platform> 要素の中身を AnyCPU から x86 に書き換えれば良かったかと思います。

    • 回答としてマーク 山本春海 2011年10月6日 6:48
    2011年9月29日 0:13
  • ちなみにこういったトラブルを避けるために(と思われますが)、Visual Studio 2010からはデフォルトがApu CPUからx86に変更されているため、Windows 7 x64であっても32bitで動作します。
    • 回答としてマーク 山本春海 2011年10月6日 6:48
    2011年9月29日 1:34
  • 回答ありがとうございます。

     

    <Platform>の要素をX86に変更して ビルドしたところ

    無事 Windows7(64)で 動作するようになりました

     

    ありがとうございました

    2011年9月29日 4:22
  • 今 使っているのはVS2010ですが 今後気をつけるようにします。

    教えてくれてありがとうございます。

    2011年9月29日 4:25
  • こんにちは、shi234 さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。

    みなさんから有効な情報をいただいているようでしたので、他の方にも情報を有効活用いただくため、勝手ながら私のほうで回答としてマークさせていただきました。
    Hongliang さん、佐祐理 さん、情報ありがとうございます。

    いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
    今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、ご協力よろしくお願いいたしますね。

    今後とも、MSDN フォーラムをよろしくお願いいたします。それでは。
                                                                                                                                   
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2011年10月6日 6:48