ActiveX Exeのクラスのオブジェクト生成時にエラーになる

解決


ミラ  2010-11-11 10:15:04  No: 102696  IP: [192.*.*.*]

環境 :Windows XP    
       VB6

ActiveX Exeのクラスのオブジェクト生成時にエラーになります。
Test.exeの中にClaのクラスモジュールがあります。  
参照設定で、Test.exeを参照し、

Set fCla = New Cla

を行うと、
3704  「オブジェクトが閉じている場合は、操作許可されません。」
エラーになります。

原因がつかめないのですが、わかるかたいらっしゃいますか?
よろしくお願いします。

編集 削除
魔界の仮面弁士  2010-11-11 11:18:11  No: 102697  IP: [192.*.*.*]

ADO / OLE DB が出すエラーメッセージに似ていますね。

もしかしてそのクラスは、Private Sub Class_Initialize() 内で
データベース接続を行っていませんか?

・ini ファイル等が正しく読み込まれず、接続情報が間違っている。
・On Error で、本来のエラー箇所がスキップされてしまっている。
・コードの誤りで、Connection / Recordset / Stream が
  開かれていないときに、特定の操作をしようとしている。

など。たとえば、以下のようなコードでも、同様のエラーが再現されます。

Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Provider = "Microsoft.JET.OLEDB.4.0"
cn.Properties("Data Source").Value = "C:\db1.mdb"

'cn.Open  'Openされていない

Dim rs As Object
Set rs = cn.Execute("SELECT * FROM TBL")

編集 削除
huh  2010-11-11 11:24:42  No: 102698  IP: [192.*.*.*]

プログラムの中身について、何も記載が無いので想像ですが、
Test.exeの中でデータベースをオープンしてない状態で、
何かしらの操作をしようとしてるのが原因では無いでしょうか?
(エラー表示そのまんまですが。。。)

編集 削除
ミラ  2010-11-11 14:05:56  No: 102699  IP: [192.*.*.*]

自己解決しました。

とりあえず、Test.exeをコンパイルし直しました。

すいません、ありがとうございました。

編集 削除