다음을 통해 공유


ADO 이벤트 인스턴스화: Visual Basic

Visual Basic에서 ADO 이벤트를 처리하려면 WithEvents 키워드를 사용하여 모듈 수준 변수를 선언해야 합니다. 변수는 클래스 모듈의 일부로만 선언할 수 있으며 모듈 수준에서 선언해야 합니다. 그러나 Visual Basic Form 개체도 클래스이기 때문에 이는 보이는 만큼 제한적이지 않습니다. ADO 이벤트를 처리하는 가장 간단한 방법은 WithEvents를 사용하여 변수를 선언하는 것입니다. 다음 예제에서는 Connection 개체에 대한 ConnectComplete 이벤트를 처리합니다.

' BeginEventExampleVB02  
Dim WithEvents connEvent As Connection  
Attribute connEvent.VB_VarHelpID = -1  
  
Private Sub Form_Load()  
Dim strConn As String  
  
   ' Create a new object with event  
   ' handling enabled.  
   strConn = "Provider=sqloledb;" & _  
      "Data Source=MyServer;" & _  
      "Initial Catalog=Northwind;" & _  
      "Integrated Security=SSPI;"  
   Set connEvent = New ADODB.Connection  
   connEvent.Open strConn  
End Sub  
  
Private Sub connEvent_ConnectComplete(ByVal pError As ADODB.Error, _  
    adStatus As ADODB.EventStatusEnum, _  
    ByVal pConnection As ADODB.Connection)  
Dim strMsg As String  
  
   If adStatus = adStatusErrorsOccurred Then  
      Select Case pError.Number  
         Case adErrOperationCancelled  
            ' The operation was cancelled in the  
            ' Will event. Notify the user and exit.  
            strMsg = "I'm sorry you can't connect right now." & vbCrLf  
            strMsg = strMsg & "Click OK to exit."  
            Unload Me  
         Case Else  
            strMsg = "Error " & Format(pError.Number) & vbCrLf  
            strMsg = strMsg & pError.Description  
            strMsg = strMsg & "Click OK to exit."  
            Unload Me  
      End Select  
   End If  
   frmWait.btnOK.Enabled = True  
End Sub  
' EndEventExampleVB02  

Connection 개체는 이벤트 처리를 사용하도록 설정하기 위해 WithEvents 키워드를 사용하여 Form 수준에서 선언됩니다. Form_Load 이벤트 처리기는 실제로 connEvent에 새 Connection 개체를 할당하여 개체를 만든 다음, 연결을 엽니다. 물론 실제 애플리케이션은 여기에 표시된 것보다 Form_Load 이벤트 처리기에서 더 많은 항목을 처리합니다.