Instanciação de evento ADO: Visual Basic
Para lidar com eventos da ADO no Visual Basic, você deve declarar uma variável no nível do módulo usando a palavra-chave WithEvents. A variável pode ser declarada apenas como parte de um módulo de classe e deve ser declarada no nível do módulo. No entanto, isso não é tão restritivo quanto parece, pois objetos Form do Visual Basic também são classes. A maneira mais simples de lidar com eventos ADO é declarar uma variável usando WithEvents. O exemplo a seguir manipula o evento ConnectComplete de um 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
O objeto Connection é declarado no nível de Form usando a palavra-chave WithEvents para habilitar o tratamento de eventos. O manipulador de eventos Form_Load realmente cria o objeto atribuindo um novo objeto Connection ao connEvent e, em seguida, abre a conexão. É claro que um aplicativo real faria mais processamento no manipulador de eventos Form_Load do que é mostrado aqui.