'Sometimes you have stored proc that takes 2,3 or 5 min to execute. 'Application that lock up frequently frustrates users and waste their time and resources. 'Solution use ADO ASYNCHROUS OPTION to get back CPU resorces. Public Sub ExecuteAsync() Dim cmd As ADODB.Command Set cmd = New ADODB.Command cmd.ActiveConnection = "DSN=test" cmd.CommandTimeout = 180 cmd.CommandText = "sp_name" cmd.CommandType = adCmdStoredProc cmd.EXECUTE , , adAsyncExecute '<--- start ASYNCHROUS 'You can also make a dumy progress bar to show proggres Do While (cmd.State And adStateExecuting) = adStateExecuting DoEvents Loop 'Methods Options 'EXECUTE adAsyncExecute, adAsyncFetch 'OPEN adAsyncConnect 'You can do same this with RDO 'Do While rs.StillExecuting ' DoEvents 'Loop End Sub