ADO 事件实例化:Visual Basic
若要在 Visual Basic 中处理 ADO 事件,必须使用 WithEvents 关键字声明模块级变量。 变量只能声明为类模块的一部分,并且必须在模块级别声明。 但是,这不像看起来那么严格,因为 Visual Basic Form 对象也是类。 处理 ADO 事件的最简单方法是使用 WithEvents声明变量。 以下示例处理 Connection 对象的 ConnectComplete 事件:
' 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
Connection 对象在 Form 级别使用 WithEvents 关键字进行声明,以启用事件处理。 Form_Load事件处理程序实际上通过将新的 Connection 对象分配给 connEvent,然后打开连接来创建对象。 当然,实际应用程序会在Form_Load事件处理程序中执行比此处所示更多的处理。