エラー430


かもめ  2005-02-21 19:20:40  No: 88553  IP: [192.*.*.*]

VB6,ADO,Access でシステムを作成しました。
それを他の端末で実行したとき
"クラスはオートメーションをサポートしてません(430)"
といったエラーが表示されました。

ヘルプを見ると古いDLLがあれば互換性がとれないみたいなことを
書いてあったのですが msado15.dll の更新日時が1999年以前のもの
に対してこのエラーがでてました。数台しか試してないので不確かですが・・
もしかしたら  msado15.dll  が古いバージョンだと無理なんでしょうか、
レジストリを変更しなければならないのでしょうか

編集 削除
もげ  2005-02-22 09:16:45  No: 88554  IP: [192.*.*.*]

たとえば、このスレッドなんか参考になるかもしれませんが、
http://madia.world.coocan.jp/vb/vb_bbs/200402_04020082.html
「何がどうしてどうなったか」をもう少し整理したほうがよいでしょう。
また、
VB6のSPと各PCのOSのバージョン、Accessのバージョンにも関係するので、
それらの情報を提示したほうがよいでしょう。

確かに、貴殿の作られたプログラムが、
古いバージョンでサポートしていないメソッドを使用している可能性がありますね。
その場合は、レジストリの変更というより、DLLの(MDACの)更新が必要かもしれません。

実行にあたっては、
試す環境を作成して、実際に試してみることをお勧めしますが。

編集 削除
かもめ  2005-02-22 10:26:35  No: 88555  IP: [192.*.*.*]

参照設定でのADOのライブラリを2.8から2.5に
変更したら正常に動作しました。

ADOのライブラリのバージョンとDLLのバージョンで
古い場合とかだと互換がとれていないということでしょうか?

編集 削除
Dental  2005-02-22 11:22:18  No: 88556  IP: [192.*.*.*]

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だけでなく、上位バージョンも入っている開発環境」とで、
動作が異なる可能性があるので、環境テストは入念に。

編集 削除
かもめ  2005-02-22 16:11:02  No: 88557  IP: [192.*.*.*]

msado15.dllについてなんですが、実際このDLLは
どの状態でインストールされるのでしょうか?

VBのインストール時
マイクロソフト(Access)インストール時
OSインストール時

現在の環境はVB、Officeのどちらかが入っていたら
このDLLは入ってました。

OSを最インストールしてためしたいのですが試せる端末が
ありませんでした。

編集 削除
Dental  2005-02-22 17:21:33  No: 88558  IP: [192.*.*.*]

http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp

検索の種類[ファイルのみ]、ファイル名[msado15.dll]で。

編集 削除