Windows 7 SP1で作成したAccessADPがWindowsXPでクラッシュする

Windows 7 SP1にアップデートしたOSでAccessADPプログラムを作成すると、SPなしWindows7やWindowsXPなどでファイルを開いたときにクラッシュする現象。
すでにブログを書いていたと思ったら、書いていなかったので報告しておく。
現象は、ADPファイルの起動時に、「クラスはオートメーションまたは予測したインターフェースをサポートしていません。」というエラーが出るというものだ。
ヒントはこちらから
KB2517589:ADOを使用しているアプリケーションの再コンパイルで互換性に問題が発生する
ADPはデータベース接続オブジェクトしてADOを使用しているが、参照設定のADOバージョンがたとえ同じでも、MDACのADOバージョンが違うために出ているエラーらしい。
なぜこんなことが起こるのかというと、Windows7 SP1でADOが勝手にバージョンアップされ、ファイル名が一緒なのに、バージョンが変わるため、SP1でコンパイルされたプログラムは下位互換がなくなる。
解決方法は、Windows7SP1でコンパイルしたAccessファイルは、それ以外のOSで参照設定のADOを一度外して閉じ、再度参照設定でADOを選択してコンパイルする。これだけ。
ADPでは必ずADOを使用するので関係するが、MDBやACCDBでもADOを使用する場合は注意が必要!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です