Option Compare Database
Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private WithEvents cnCls1 As Class_ADOConnectionAsyncWithDialog
Private cnCondition As Boolean
Private OpenCancel As Boolean
Private cnErrMsg As String
Private Sub SetInit()
Set cnCls1 = New Class_ADOConnectionAsyncWithDialog
cnErrMsg = ""
cnCls1.ConnectionStart
End Sub
Private Sub cnCls1_Connected(cnStatus As ADODB.EventStatusEnum, cnError As ADODB.Error)
If cnStatus = adStatusOK Then
cnCls1.ExecQueryReadOnly "procedurestring"
Else
OpenCancel = True
cnErrMsg = "Connection Error:" & cnError.Description
cnCls1.ConnectionClose'cnErrMsg代入を先にしないとConnectionCloseが先に実行される場合がある
End If
End Sub
Private Sub cnCls1_ExecuteComplete(cnStatus As ADODB.EventStatusEnum, ResultRS As ADODB.Recordset, ResultRecordsAffected As Long, cnError As ADODB.Error)
If cnStatus = adStatusOK Then
'ここでいろいろセッティング
Else
OpenCancel = True
cnErrMsg = "Execute Error:" & cnError.Description
End If
cnCls1.ConnectionClose
End Sub
Private Sub cnCls1_DisConnected()
Set cnCls1 = Nothing
cnCondition = True
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Errhnd
cnCondition = False
OpenCancel = False
SetInit
While cnCondition = False'ここでLoopさせて待機
DoEvents
Sleep 100
Wend
If Not cnErrMsg = "" Then MsgBox cnErrMsg
Cancel = OpenCancel
Exit Sub
Errhnd:
Cancel = True
End Sub
Private Sub Form_Close()
On Error Resume Next
Set cnCls1 = Nothing
End Sub
2010/05/21
access2010 ADO非同期処理 メモ Form.Open
ラベル:
access 2010,
ADO,
VBA
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿