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

解決


ミラ  2010-11-11 19:15:04  No: 102696

環境 :Windows XP    
       VB6

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

Set fCla = New Cla

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

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


魔界の仮面弁士  2010-11-11 20:18:11  No: 102697

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 20:24:42  No: 102698

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


ミラ  2010-11-11 23:05:56  No: 102699

自己解決しました。

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加