プロが教える店舗&オフィスのセキュリティ対策術

VB6.0でデータベース(SQLSERVER7.0)をアクセスする
プログラムを作りました。

そのプログラムをVB6.0が
インストールしていない他のパソコンでも
動かしたいので
ディストリビューション ウィザードで
setup.exeを作り
他のパソコンにセットアップしようとしたら
「ファイルC:\WINNT\SYSTEM32\msado21.tlbの
登録中にエラーが発生しました」と
表示されセットアップできません。

なおセットアップのログファイルを見ると
エラーC:\WINNT\SYSTEM32\msado21.tlb中に
DLLRegisterSerer()のエントリポイントが
見つかりません。

次の処理中:DllSelfRegister:
"C:\WINNT\SYSTEM32\msado21.tlb"

とありました。

セットアップでき、実行できるようにするには
どのようにしたら良いですか?

もちろんexeファイルをコピーし
他のパソコンにいれても実行されません。

エラーメッセージは
実行時エラー430
クラスはオートメーションまたは予測したインターフエースをサポートして 
いません

A 回答 (2件)

下記のページを参考にして、setup.lstのmsado21.tlbの行を変更して試してみてください。


http://www.accessclub.jp/bbs/0007/beginers3132.h …

また、別の可能性として、NT4.0のSPによる可能性もあります。
MDACのバージョン(=ADOのバージョン)によっては、NT4.0の場合SPのいくつか以上が必要とされる場合があります。

ちなみに、MDACとは、ADOを使用出来るようにするための環境です。
バージョンは、参照設定で選択している「Microsoft ActiveX Data Objects *.* Library」で確認出来ます。

ところで、VB付属のディストリビューションウィザードではMDACのインストーラーを添付してくれます。
その点は、ご安心下さい。
ただし、MDACのバージョンが2.1より後のバージョンの場合手動でインストーラーを含めなければなりません。
最新のMDACのインストーラーでしたら、下記からダウンロード出来ます。

Ver2.5
http://www.microsoft.com/downloads/details.aspx? …

Ver2.8
http://www.microsoft.com/downloads/details.aspx? …

他のバージョンもマイクロソフトのHPから検索すれば見つかります。
    • good
    • 0
この回答へのお礼

Ver2.5をダウンロードしたら
実行できました。

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

お礼日時:2004/08/09 16:01

実行させるOSがどれかも重要なのだが、このエラーはADO、まぁMDACのバージョンによるものだ。

ディストリビューションウィーザード(←ちなみに私はほとんど使った事がない。理由は全く信用ならないからだ。)では恐らくMDACは含んでくれないだろう。ちなみに、「msado21.tlbファイルが壊れてるのか!?」と思うかも知れないが、恐らくこれはさらにその先、つまりmsado21.tlbが参照するファイル(DLLなど)が無いために発生しているのだと推測される。これは、ディストリウィズはVBで作ったEXEが参照しているライブラリは探すが、再帰的にそのライブラリが参照するライブラリを探す事をサボるために起こっているのだと思う(よくサボるらしい)。できればInstall Shieldなどで適切に必要なファイルを含めてあげる方が良いだろう。

という事で、実行させるパソコンに持っていく時は、マイクロソフトからダウンロードできるMDACの2.5、2.6、2.7、2.8のどれかを一緒に持っていって、先にMDACを入れてあげると良い。

おそらく実行マシンはOSが95かNT4なのではないかな。98はADO2.1が最初から入っている気がする(気がするだけ)。

後、SQL Server 7.0に接続するにも、ADOの2.5(できれば2.6以上)を使った方が今後のためにも良いと思うのだが、理由があるなら2.1でも仕方が無いだろう。Visual BasicのIDEを開いた時に、参照設定で切り替える事ができる。

長々と書いたが、解決方法はMDACをもっていってあげるかなんとかして、自前で先にADOコンポーネントを入れておいてあげよう。

この回答への補足

実行させるOSはNT4.0です。

MDACとは何ですか?
どこにあるのですか?
(URLなどあったら教えてください。)

教えてください。

補足日時:2004/08/09 08:23
    • good
    • 0

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