'引用microsoft activex data object 2.x library Option Explicit Private conn As ADODB.Connection Private WithEvents rs As ADODB.Recordset中间连接过程... Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Dim i As Integer List1.AddItem rs.Fields("订单号") List1.AddItem pRecordset.Fields("订单号") End Sub
ErrHandler: MsgBox strMsg End SubPrivate Sub connEvent_ConnectComplete(ByVal pError As ADODB.Error, _ adStatus As ADODB.EventStatusEnum, _ ByVal pConnection As ADODB.Connection)
If adStatus = adStatusErrorsOccurred Then If Not pError Is Nothing Then Select Case pError.Number Case adErrOperationCancelled 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 Else strMsg = "Error occured. Click OK to exit." Unload Me End If End IfEnd SubConnection 对象在 Form 级进行声明,并使用 WithEvents 关键字来启用事件处理。Form_Load 事件处理程序通过将新的 Connection 对象赋给 connEvent 来实际地创建对象,然后打开连接。
WillConnect 即将调用Connection.Open方法之时Private Sub Connection1_WillConnect(ConnectionString As String, UserID As String, Password As String, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection) ConnectComplete 成功建立到数据源的Connection之后Private Sub Connection1_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Option Explicit
Private conn As ADODB.Connection
Private WithEvents rs As ADODB.Recordset中间连接过程...
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Dim i As Integer
List1.AddItem rs.Fields("订单号")
List1.AddItem pRecordset.Fields("订单号")
End Sub
BeginTransComplete 在 BeginTrans 操作后调用。
CommitTransComplete 在 CommitTrans 操作后调用。
ConnectComplete 在连接启动后调用。
Disconnect 在连接结束后调用。
EndOfRecordset 在试图移动到超过 Recordset 结尾的行时调用。
ExecuteComplete 在命令执行结束后调用。
FetchComplete 在长异步操作中的所有记录已经检索到 Recordset 中之后调用。
FetchProgress 在长异步操作期间定期调用,用于报告 Recordset 中当前已经检索的行数。
FieldChangeComplete 在更改了一个或多个 Field 对象的值后调用。
InfoMessage 在 ConnectionEvent 操作期间出现警告时调用。
MoveComplete 在 Recordset 中的当前位置更改后调用。
RecordChangeComplete 在一个或多个记录更改后调用。
RecordsetChangeComplete 在 Recordset 更改后调用。
RollbackTransComplete 在 RollbackTrans 操作后调用。
WillChangeField 在挂起操作更改 Recordset 中的一个或多个 Field 对象的值之前调用。
WillChangeRecord 在 Recordset 中的一个或多个记录(行)更改前调用。
WillChangeRecordset 在挂起操作更改 Recordset 前调用。
WillConnect 在连接开始前调用。
WillExecute 在对此连接执行挂起命令前调用,使用户能够检查和修改挂起执行参数。
WillMove WillMove 事件在挂起操作更改 Recordset 中的当前位置前调用。
要在 Microsoft Visual Basic 中处理 ADO 事件,要使用 WithEvents 关键字声明模块级变量。处理 ADO 事件的最简单方式是使用 WithEvents 来声明变量。以下范例将处理 Connection 对象的 ConnectComplete 事件:Dim WithEvents connEvent As Connection
Attribute connEvent.VB_VarHelpID = -1
Dim strMsg As StringPrivate Sub Form_Load()
On Error GoTo ErrHandler:
Dim strConn As String
strConn = "Provider='sqloledb';" & _
"Data Source='MySqlServer';" & _
"Initial Catalog='Northwind';" & _
"Integrated Security='SSPI';"
Set connEvent = New ADODB.Connection
connEvent.Open strConn
Exit Sub
ErrHandler:
MsgBox strMsg
End SubPrivate Sub connEvent_ConnectComplete(ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, _
ByVal pConnection As ADODB.Connection)
If adStatus = adStatusErrorsOccurred Then
If Not pError Is Nothing Then
Select Case pError.Number
Case adErrOperationCancelled
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
Else
strMsg = "Error occured. Click OK to exit."
Unload Me
End If
End IfEnd SubConnection 对象在 Form 级进行声明,并使用 WithEvents 关键字来启用事件处理。Form_Load 事件处理程序通过将新的 Connection 对象赋给 connEvent 来实际地创建对象,然后打开连接。
ConnectComplete 成功建立到数据源的Connection之后Private Sub Connection1_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)