
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
クラスはオートメーションまたは予測したインターフエースをサポートして
いません
No.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から検索すれば見つかります。
No.1
- 回答日時:
実行させる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などあったら教えてください。)
教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで質問です。 ハイパー...
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
FileSearchがExcel2010でできない
-
VBから参照できないCのDLLを使...
-
VB6 Dir関数で52エラー発生
-
Access2013にてドラッグ&ドロ...
-
ネットワーク上でのファイル操...
-
gccを行ってもexeファイルが生...
-
matlabでexcelを閉じる
-
インデックスが配列の境界外で...
-
VBでファイルが開かれているか...
-
access テキストボックスの値取得
-
fcloseで発生するエラーについて。
-
ファイルをクローズしたい
-
【関数】同じ関数なのに、エラ...
-
AutoExecで自動終了させるには?
-
アクセスのクエリでコンパイル...
-
csvファイルをvbaで読み...
-
【COBOL】read文でエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで質問です。 ハイパー...
-
Excel 2003 のエラーメッセージ
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
access テキストボックスの値取得
-
【COBOL】read文でエラー
-
アクセスのクエリでコンパイル...
-
Returnに対するGoSubがありません
-
batファイルでレジストリキーの...
-
VBから参照できないCのDLLを使...
-
NAS上のファイルの使用中が解除...
-
データベースソフトのアクセス2...
-
VB6 Dir関数で52エラー発生
-
【関数】同じ関数なのに、エラ...
-
gccを行ってもexeファイルが生...
-
FORTRANの実行エラーについて
-
FTPの送信結果を検知したい
-
fgets関数のEOFの扱い方について
-
ASP.NET 2.0にてアプリが動作し...
-
VBでファイルが開かれているか...
おすすめ情報