Поделиться через


Свойство Connection.StillExecuting (DAO)

Область применения: Access 2013, Office 2013

Синтаксис

expression . StillExecuting

выражение: переменная, представляющая объект Connection.

Примечания

Используйте свойство StillExecuting , чтобы определить, завершен ли последний асинхронный метод Execute или OpenConnection (то есть метод, выполняемый с параметром dbRunAsync ). Хотя свойство StillExecuting имеет значение True, доступ к любому возвращаемому объекту невозможен.

После того как свойство StillExecuting возвращает значение False, после вызова OpenConnection , который возвращает связанный объект Connection , на объект можно ссылаться. Пока значение StillExecuting остается True, на объект можно не ссылаться, кроме как для чтения свойства StillExecuting .

Используйте метод Cancel , чтобы завершить выполнение выполняемой задачи.

Пример

В этом примере свойство StillExecuting и метод Cancel используются для асинхронного открытия объекта Connection .

    Sub CancelConnectionX() 
     
     Dim wrkMain As Workspace 
     Dim conMain As Connection 
     Dim sngTime As Single 
     
     Set wrkMain = CreateWorkspace("ODBCWorkspace", _ 
     "admin", "", dbUseODBC) 
     ' Open the connection asynchronously. 
     
     ' Note: The DSN referenced below must be configured to 
     ' use Microsoft Windows NT Authentication Mode to 
     ' authorize user access to the Microsoft SQL Server. 
     Set conMain = wrkMain.OpenConnection("Publishers", _ 
     dbDriverNoPrompt + dbRunAsync, False, _ 
     "ODBC;DATABASE=pubs;DSN=Publishers") 
     
     sngTime = Timer 
     
     ' Wait five seconds. 
     Do While Timer - sngTime < 5 
     Loop 
     
     ' If the connection has not been made, ask the user 
     ' if she wants to keep waiting. If she does not, cancel 
     ' the connection and exit the procedure. 
     Do While conMain.StillExecuting 
     
     If MsgBox("No connection yet--keep waiting?", _ 
     vbYesNo) = vbNo Then 
     conMain.Cancel 
     MsgBox "Connection cancelled!" 
     wrkMain.Close 
     Exit Sub 
     End If 
     
     Loop 
     
     With conMain 
     ' Use the Connection object conMain. 
     .Close 
     End With 
     
     wrkMain.Close 
     
    End Sub