Partager via


Instanciation des événements ADO : Visual Basic

Pour gérer les événements ADO dans Visual Basic, vous devez déclarer une variable au niveau du module à l’aide du mot clé WithEvents. La variable ne peut être déclarée que dans le cadre d’un module de classe et doit être déclarée au niveau du module. Cela n’est pas aussi restrictif qu’en apparence, cependant, car les objets Visual Basic Form sont également des classes. La façon la plus simple de gérer les événements ADO consiste à déclarer une variable à l’aide de WithEvents. L’exemple suivant gère l’événement ConnectComplete pour un objet Connection :

' 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  

L’objet Connection est déclaré au niveau Form à l’aide du mot clé WithEvents pour activer la gestion des événements. Le gestionnaire d’événements Form_Load crée réellement l’objet en affectant un nouvel objet Connection à connEvent, puis ouvre la connexion. Bien sûr, une application réelle ferait plus de traitement dans le gestionnaire d’événements Form_Load que ce qui est illustré ici.