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í.