Instansiasi Peristiwa ADO: Visual Basic

Untuk menangani peristiwa ADO di Visual Basic, Anda harus mendeklarasikan variabel tingkat modul menggunakan kata kunci WithEvents . Variabel hanya dapat dideklarasikan sebagai bagian dari modul kelas dan harus dideklarasikan pada tingkat modul. Namun, ini tidak sebatas kelihatannya, karena objek Visual Basic Form juga merupakan kelas. Cara paling sederhana untuk menangani peristiwa ADO adalah dengan mendeklarasikan variabel menggunakan WithEvents. Contoh berikut menangani peristiwa Koneksi Complete untuk objek Koneksi ion:

' 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  

Objek Koneksi ion dideklarasikan di tingkat Formulir menggunakan kata kunci WithEvents untuk mengaktifkan penanganan peristiwa. Penanganan aktivitas Form_Load benar-benar membuat objek dengan menetapkan objek Koneksi ion baru ke connEvent lalu membuka koneksi. Tentu saja, aplikasi nyata akan melakukan lebih banyak pemrosesan di penanganan aktivitas Form_Load daripada yang ditunjukkan di sini.