(100分)ADO里的事件怎么用?比如willConnect, connectComplete...

解决方案 »

  1.   

    '引用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
      

  2.   

    ADO 事件
    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 中的当前位置前调用。 
      

  3.   

    示例:
    要在 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 来实际地创建对象,然后打开连接。
      

  4.   

    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)