Win2000
VB6.0 SP6
ACCESS 2000
ACCESS 9.0 Object Libraryを参照しています。
VBからACCESSのレポートを表示させ、閉じるまでの間はVBのプログラムを待機させようと試みています。
1週目はSysCmdに"1"が入るので待機できるのですが、終了後にもう一度同じ処理を流すと
レポートが開いているにも関わらずSysCmdに"0"が帰ってきてしまい待機させる事が出来なくなってしまいます。
何故だか判る方、また、もっと良い方法があるという方がいらっしゃいましたら、是非ご教授願いたく思います。
よろしくお願い致します。
------------------------------------------------------------------
Option Explicit
Public CN02 As ADODB.Connection
------------------------------------------------------------------
Public Sub CMD_印刷_Click()
〜 中略…レポートのソーステーブルを作る処理です 〜
CN02.Close
Dim oleAccess As Object
Set oleAccess = Nothing
Set oleAccess = CreateObject("Access.Application")
oleAccess.OpenCurrentDatabase App.Path & "\Temp.mdb", False
oleAccess.DoCmd.OpenReport "Report", acViewPreview
oleAccess.DoCmd.Maximize
oleAccess.Visible = True
Me.Visible = False
WaitObjectClose acReport, "RPT_Res"
Me.Visible = True
Call DataGridSource '→閉じたコネクションを開き直しています
Call DataComboFormat
End Sub
------------------------------------------------------------------
Public Sub WaitObjectClose(intObjType As Integer, strObjName As String)
intObjType = acReport
strObjName = "Report"
Do
DoEvents
Loop Until SysCmd(acSysCmdGetObjectState, intObjType, strObjName) = 0
End Sub
ツイート | ![]() |