一个绝好的例子,来自MSDN
Option ExplicitPrivate WithEvents adoCn As ADODB.Connection
Private WithEvents adoRs As ADODB.Recordset
Private adoErr As ErrorsPrivate Sub Form_Load()Dim strConnect As String
strConnect = "Driver={SQL Server};Server=<ServerName>;User ID=<UserID>;Password=<Password>;Initial Catalog=<Database>"Set adoCn = New ADODB.Connection
With adoCn
'.Provider = "SQLOLEDB"
.ConnectionString = strConnect
.Open
End WithSet adoRs = New ADODB.Recordset
With adoRs
Set .ActiveConnection = adoCn
'.CursorLocation = adUseServer 'adUseClient
.CursorLocation = adUseClient .CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open "SELECT * FROM adoAsyncTest", , , , (adCmdText + adAsyncFetchNonBlocking)
End WithDebug.Print "Executing Async..."End SubPrivate Sub adoCn_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)Debug.Print "---------Execute Complete---------"
Debug.Print "RecordCount = " & adoRs.RecordCountEnd SubPrivate Sub adoRs_FetchComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)Debug.Print "---------Fetch Complete---------"End SubPrivate Sub adoRs_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)Debug.Print "Fetch Progress = " & pRecordset.RecordCountEnd Sub
Option ExplicitPrivate WithEvents adoCn As ADODB.Connection
Private WithEvents adoRs As ADODB.Recordset
Private adoErr As ErrorsPrivate Sub Form_Load()Dim strConnect As String
strConnect = "Driver={SQL Server};Server=<ServerName>;User ID=<UserID>;Password=<Password>;Initial Catalog=<Database>"Set adoCn = New ADODB.Connection
With adoCn
'.Provider = "SQLOLEDB"
.ConnectionString = strConnect
.Open
End WithSet adoRs = New ADODB.Recordset
With adoRs
Set .ActiveConnection = adoCn
'.CursorLocation = adUseServer 'adUseClient
.CursorLocation = adUseClient .CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open "SELECT * FROM adoAsyncTest", , , , (adCmdText + adAsyncFetchNonBlocking)
End WithDebug.Print "Executing Async..."End SubPrivate Sub adoCn_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)Debug.Print "---------Execute Complete---------"
Debug.Print "RecordCount = " & adoRs.RecordCountEnd SubPrivate Sub adoRs_FetchComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)Debug.Print "---------Fetch Complete---------"End SubPrivate Sub adoRs_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)Debug.Print "Fetch Progress = " & pRecordset.RecordCountEnd Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货