tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルオートメーションエラー解決ポイント
記事No13052
投稿日: 2008/09/22(Mon) 17:52
投稿者ぽんぽん
SQLOLEDB.1プロバイダでADO経由でローカルマシンのMDB内のデータをSQLServerにアップするVB6.0で作成したプログラムがあります。
このプログラムをローカルマシンで実行したところ、"実行時エラー ライブラリは登録されていません。"のエラーで実行できません。
いろいろネット上で探してみたのですが、結局何が足りないのかが分かりませんでした。
この場合、どこにポイントを絞って確認したらよいでしょうか?
初心者なもので、ご教授お願いいたします。

●ローカルマシン環境
WindowsXP(SP2)
Office2003 Professional Edition(SP3)

●サーバ環境
SQLServer Standard Edition
WindowsServer2003

[ツリー表示へ]
タイトルマルチポスト
記事No13054
投稿日: 2008/09/22(Mon) 19:06
投稿者【報告】
マルチポスト

http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200809/08090021.txt

[ツリー表示へ]
タイトルRe: オートメーションエラー解決ポイント
記事No13055
投稿日: 2008/09/22(Mon) 20:34
投稿者魔界の仮面弁士
> SQLServer Standard Edition
バージョンは?
# 2008, 2005, 2000, 7.0, 6.5, 6.0…。

> SQLOLEDB.1プロバイダでADO経由でローカルマシンのMDB内のデータをSQLServerにアップするVB6.0で作成したプログラムがあります。

その仕様について、もう少し詳しく教えてください。
現在は、どのように実装されているのでしょうか。

(1) SQL Server に DTS(データ変換サービス) パッケージを作成しておき、
 それを ADO 経由で呼び出している。
http://support.microsoft.com/kb/285829/ja
http://blogs.timberlandchapel.com/blogs/timberlandchapel/archive/2006/04/13/700.aspx

(2) SQL Server の OPENROWSET 関数で、mdb へのアドホッククエリを実行し、
 そこから INSERT INTO で取り込んでいる。
http://www.accessclub.jp/bbs6/0005/das974.html

(3) SQL Server 上に、mdb へのリンクサーバを用意し、そこから
 INSERT INTO で取り込んでいる。

(4) SQLOLEDB プロバイダによる ADO 接続とは別に、Microsoft.JET.OLEDB.4.0 での
 ADO 接続を用意し、それぞれ別の Recordset から、1 件ずつ AddNew している。

(5) その他


> このプログラムをローカルマシンで実行したところ、"実行時エラー ライブラリは登録されていません。"のエラーで実行できません。

まず、使用している[参照設定]および[コンポーネント]を列挙してみてください。

[ツリー表示へ]
タイトルRe^2: オートメーションエラー解決ポイント
記事No13056
投稿日: 2008/09/23(Tue) 22:27
投稿者ぽんぽん
魔界の仮面弁士様

> バージョンは?
> # 2008, 2005, 2000, 7.0, 6.5, 6.0…。

2005です

> その仕様について、もう少し詳しく教えてください。
> 現在は、どのように実装されているのでしょうか。

> (4) SQLOLEDB プロバイダによる ADO 接続とは別に、Microsoft.JET.OLEDB.4.0 での
>  ADO 接続を用意し、それぞれ別の Recordset から、1 件ずつ AddNew している。

ソースが公開してもらえなくて・・・。
詳しくは分かりませんが、(4)の仕様のはずです。

> まず、使用している[参照設定]および[コンポーネント]を列挙してみてください。

それは開発時の参照およびコンポーネントですよね?
明日、確認してみます。
すみません、わざわざお返事くださっているのに・・・。

[ツリー表示へ]
タイトルRe^2: オートメーションエラー解決ポイント
記事No13057
投稿日: 2008/09/24(Wed) 11:59
投稿者ぽんぽん
魔界の仮面弁士様

ご指摘いただいた事項について確認しました。
不要なものもあるかもしれませんが、設定されているもの全て記載いたします。

> > このプログラムをローカルマシンで実行したところ、"実行時エラー ライブラリは登録されていません。"のエラーで実行できません。
>
> まず、使用している[参照設定]および[コンポーネント]を列挙してみてください。

参照設定
・Visual Basic for Applications
・Visual Basic runtime objects and procedures
・Visual Basic objects and procedures
・OLE Automation
・Microsoft ActiveX Data Objects 2.5 Library
・Microsoft Data Formattiong Object Library 6.0(SP)
・Microsoft Scripting Runtime

コンポーネント(コントロール)
・Microsoft ADO Data Control 6.0(SP6)(OLEDB)
・Microsoft FlexGrid Control 6.0(SP6)
・Microsoft Forms 2.0 Object Library
・Microsoft Masked Edit Control 6.0
・Microsoft Windows Common Controls 5.0(SP2)
・Microsoft Windows Common Controls-2 6.0(SP4)

使用しているのはこれくらいです。
申し訳ございませんが、ご教授のほどお願いいたします。

[ツリー表示へ]
タイトルRe^3: オートメーションエラー解決ポイント
記事No13058
投稿日: 2008/09/25(Thu) 02:38
投稿者魔界の仮面弁士
> ・Microsoft ActiveX Data Objects 2.5 Library
XP/2003であれば、2.5でおそらく大丈夫でしょう。


> ・Microsoft Scripting Runtime
これも、XP/2003 であれば標準で入っているでしょう。


> ・Microsoft Data Formattiong Object Library 6.0(SP)
これがあやしいかも。
そもそも、StdDataFormat を使用していますか?
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200508/05080090.txt

不要ならば、参照設定から外してみてください。
必要であれば、そのアプリのインストーラに msstdfmt.dll を
含めてあるかどうかを確認してみてください。


> ・Microsoft ADO Data Control 6.0(SP6)(OLEDB)
ADO データコントロールをお使いですか?
(ADO Data Control 自体は珍しい物では無いですが、細かい点で融通が
利かないことを嫌い、ADODB を直接生成して利用する人が少なくないので…)


> ・Microsoft FlexGrid Control 6.0(SP6)
今回の件とは無関係ですが、MSFlexGrid よりは MSHFlexGrid の方が良いかも。
http://support.microsoft.com/kb/191006/ja


> ・Microsoft Forms 2.0 Object Library
…微妙なものをお使いですね。
できれば、MSForms を使わないように修正されることを強くおすすめします。

FM20.DLL は、幾つかの不具合(Shift + Tab が動作しないなど)が報告されて
いますし、VB6 上の動作が保証されていません。また、再頒布上の制限もあります。
(今回は Office 2003 を導入済みなので、再頒布の問題はクリアできますが…)
http://support.microsoft.com/kb/224305/ja



> ・Microsoft Masked Edit Control 6.0
実行環境に、MSMASK32.OCX がインストールされていますか?


> ・Microsoft Windows Common Controls 5.0(SP2)
なぜ、わざわざ 5.0 を使っておられるのでしょうか? 5.0 でも問題はありませんが、
特別な事情が無ければ、6.0 を利用された方が都合がよいかと。


> ・Microsoft Windows Common Controls-2 6.0(SP4)
実行環境に、MSCOMCT2.OCX がインストールされていますか?

[ツリー表示へ]
タイトルRe^4: オートメーションエラー解決ポイント
記事No13064
投稿日: 2008/09/26(Fri) 14:22
投稿者ぽんぽん
魔界の仮面弁士様

お返事いただき、ありがとうございます。

> > ・Microsoft Data Formattiong Object Library 6.0(SP)
> これがあやしいかも。
> そもそも、StdDataFormat を使用していますか?
> http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200508/05080090.txt
 使用しています。インストーラにも指定いただいたDLLが含めてありました。

> > ・Microsoft ADO Data Control 6.0(SP6)(OLEDB)
> ADO データコントロールをお使いですか?
 コントロールは使っていません。

> > ・Microsoft Masked Edit Control 6.0
> 実行環境に、MSMASK32.OCX がインストールされていますか?
 インストールされていました。

> > ・Microsoft Windows Common Controls-2 6.0(SP4)
> 実行環境に、MSCOMCT2.OCX がインストールされていますか?
 インストールされていました。

その他、ご指摘いただいた点については、私の一存では変えられないことも
ありまして、対応できないのです。

どうも、このプログラムを入れようとしているPCの動作もこのごろ少しお
かしいです。
VBをアンインストールして、再インストールしようとすると、DLLの登録
エラーで落ちたり・・・。起動してからデスクトップが表示されるが、その後
しばらく置いていないと動作しなかったり・・・。

思い切ってOSから入れなおしてキレイにしてからセットアップしてみよ
うかと思います。

魔界の仮面弁士様にお教えいただいた点を今後の参考にしていきたいと思い
ます。
本当に、ありがとうございました。

[ツリー表示へ]