Asynchronous Query

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Rabbit
    Recognized Expert MVP
    • Jan 2007
    • 12517

    #1

    Asynchronous Query

    This will start an asynchronous query so that a large query doesn't tie up Access.

    Code:
    Option Explicit
    Private WithEvents AsyncConnection As ADODB.Connection
    
    Private Sub Command1_Click()
        Const ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Data\Access\database1.mdb;Persist Security Info=False"
        
        Set AsyncConnection = New ADODB.Connection
        
        AsyncConnection.ConnectionString = ConnectionString
        AsyncConnection.Open
        
        Const sql As String = "SELECT * FROM table1"
        
        Call AsyncConnection.Execute(sql, , CommandTypeEnum.adCmdText Or ExecuteOptionEnum.adAsyncExecute)
    End Sub
    
    Private Sub AsyncConnection_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)
        If (adStatus = adStatusOK) Then
            Me.List2.RowSource = pRecordset.Source
        End If
        
        If (pConnection.State = ObjectStateEnum.adStateOpen) Then
            pConnection.Close
        End If
    End Sub
Working...