[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/08/04(Thu) 00:34
投稿者名:C_Jr
URL :
タイトル:
オートメーションエラーが発生する
[OS]:Windows98SE(開発・利用)
[VB]:VisualBasic 5.0
[DB]:Access97

お久し振りです。またご質問宜しくお願いしますm(_ _)m

当方、VisualBasic5.0(以下VB5)を使い
Access97で作ったレポートをプリンタに出力させるアプリを作ったのですが
不定期に "オートメーションエラー" というものが発生してしまいます。
(VBのError$関数でエラー内容はわかりました)

このエラー、再現性が全くなくて、たまに出るものなのですが
どなたかエラーが出る理由はわからないでしょうか?

ソースは以下の通り
'=======================================================================
Public Function Ctr_PRINT() as Boolean
    Dim S_accObject              As Object  '//アクセス
    Dim S_accReport             As Object  '//レポート
    Dim S_MDB_CLOSE_SW          As Boolean '//開いているレポートの有無

    '//Accessを開く。
    Set S_accObject = CreateObject("Access.Application")
    S_accObject.OpenCurrentDatabase "C:\REPORT.MDB"

    '//レポートをプリンターに出力する。
    S_accObject.DoCmd.OpenReport "R_TEST", acNormal

    '//Accessが閉じられるまで待つ。
    Do Until S_accObject Is Nothing
        DoEvents
        
        '//開いているレポートが存在するかを調べる。
        S_MDB_CLOSE_SW = True
        For Each S_accReport In S_accObject.Reports
            S_MDB_CLOSE_SW = False
        Next S_accReport
        '//開いているレポートが存在しなかったら、Accessを閉じる。
        If S_MDB_CLOSE_SW = True Then
            S_accObject.Quit
            Set S_accObject = Nothing
        End If
    Loop
End Function

投稿時間:2005/08/04(Thu) 10:11
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: オートメーションエラーが発生する
> このエラー、再現性が全くなくて、たまに出るものなのですが
> どなたかエラーが出る理由はわからないでしょうか?

再現性が全くなかったら、こういうところで聞いても誰にも
わからないのでは。

まぁ、コーディングに関していろいろ突っ込みたいけれども、
それは本題から外れるので、重要な点を。ActiveX EXEの操作
では、メッセージによる通信を使っているので、両EXE
(標準EXE、ActiveX EXE)のメッセージループの流れが何かの
きっかけで止まれば、それだけでエラーが発生します。