VB6,ADO,Access でシステムを作成しました。
それを他の端末で実行したとき
"クラスはオートメーションをサポートしてません(430)"
といったエラーが表示されました。
ヘルプを見ると古いDLLがあれば互換性がとれないみたいなことを
書いてあったのですが msado15.dll の更新日時が1999年以前のもの
に対してこのエラーがでてました。数台しか試してないので不確かですが・・
もしかしたら msado15.dll が古いバージョンだと無理なんでしょうか、
レジストリを変更しなければならないのでしょうか
たとえば、このスレッドなんか参考になるかもしれませんが、
http://madia.world.coocan.jp/vb/vb_bbs/200402_04020082.html
「何がどうしてどうなったか」をもう少し整理したほうがよいでしょう。
また、
VB6のSPと各PCのOSのバージョン、Accessのバージョンにも関係するので、
それらの情報を提示したほうがよいでしょう。
確かに、貴殿の作られたプログラムが、
古いバージョンでサポートしていないメソッドを使用している可能性がありますね。
その場合は、レジストリの変更というより、DLLの(MDACの)更新が必要かもしれません。
実行にあたっては、
試す環境を作成して、実際に試してみることをお勧めしますが。
参照設定でのADOのライブラリを2.8から2.5に
変更したら正常に動作しました。
ADOのライブラリのバージョンとDLLのバージョンで
古い場合とかだと互換がとれていないということでしょうか?
2.5を参照設定してコンパイルされたexeなら、2.8環境で動かす事はできます。
しかし、2.8が参照設定されたexeを、2.5環境では動かない可能性があります。
> ADOのライブラリのバージョンとDLLのバージョンで
> 古い場合とかだと互換がとれていないということでしょうか?
といっても、2.5が出た当時は、まだ2.8は世に出ていませんしね。
2.8環境で2.5用アプリの動作を期待するならまだしも、
2.5環境で2.8用アプリを動作させろというのは、些か酷な話では?
この場合の対応策としては、
(a)適切なバージョンのMDACを頒布する。
(b)相手先のバージョンに合わせた参照設定をする。
(c)参照設定せずに利用し、かつ、下位バージョンのADOでもサポートされている機能だけを使う。
などがあります。ま、どれを使うかはケースバイケースって事で。
ちなみに、「バージョン2.5を参照設定してコンパイルしたアプリ」は、
「2.5しか入っていない開発環境」上での動作と、
「2.5だけでなく、上位バージョンも入っている開発環境」とで、
動作が異なる可能性があるので、環境テストは入念に。
msado15.dllについてなんですが、実際このDLLは
どの状態でインストールされるのでしょうか?
VBのインストール時
マイクロソフト(Access)インストール時
OSインストール時
現在の環境はVB、Officeのどちらかが入っていたら
このDLLは入ってました。
OSを最インストールしてためしたいのですが試せる端末が
ありませんでした。
http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp
検索の種類[ファイルのみ]、ファイル名[msado15.dll]で。
ツイート | ![]() |