Compartir vía


Creación de instancias de eventos de ADO: Visual Basic

Para controlar eventos de ADO en Visual Basic, debe declarar una variable a nivel del módulo mediante la palabra clave WithEvents. La variable solo se puede declarar como parte de un módulo de clase y debe declararse en el nivel de módulo. Sin embargo, esto no es tan restrictivo como parece, ya que los objetos Form de Visual Basic también son clases. La manera más sencilla de controlar los eventos de ADO es declarar una variable mediante WithEvents. En el ejemplo siguiente se controla el evento ConnectComplete para un objeto 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  

El objeto Connection se declara en el nivel Form mediante la palabra clave WithEvents para habilitar el control de eventos. El controlador de eventos Form_Load realmente crea el objeto asignando un nuevo objeto Connection a connEvent y, a continuación, abre la conexión. Por supuesto, una aplicación real procesaría más en el controlador de eventos Form_Load de lo que se muestra aquí.