2010-12-06 88 views
0

我遇到ms access 2007 accdb問題,使用Windows Server 2008任務計劃程序執行計劃任務。問題是由任務計劃程序打開的文件正在打開/關閉,但在數據庫關閉後,「鎖定」文件(.laccdb)仍然可見,這表示訪問數據庫認爲它仍處於打開狀態。每次運行新任務時,都會打開一個新的訪問實例。我打開了Schema以顯示數據庫中所有用戶的名單,並顯示了3個重複的服務器名稱/ Admin帳戶。下面是訪問即時窗口中的一個例子:在一臺計算機上打開同一訪問數據庫的多個實例 - 問題

COMPUTER_NAME LOGIN_NAME連SUSPECT_STATE 服務器管理真正的零 服務器管理真正的零 服務器管理真正的零

我希望其他人遇到過這個問題,知道1)如何輕鬆關閉所有打開的訪問實例,以及2)如何在運行任務時防止發生這種情況。我在任務的「設置」選項卡下設置了「不要啓動新實例」,但這是不相關的B/C,沒有任何任務同時運行。預先感謝您的幫助。

+0

您正在運行的任務是什麼?有可能是沒有妥善清理,或沒有正確退出。但是我們不能猜測,直到我們知道任務是什麼。它也可能是一個權限問題(即DELETE權限在數據庫所在的文件夾上被拒絕),但這不太可能,因爲它是非標準權限,必須明確設置。 – 2010-12-06 20:27:03

回答

0

要關閉所有打開的訪問實例(你不能從Access運行這一點,因爲你不能保證運行的實例將是您檢索最後參考):

Sub CloseAllAccessInstances() 
    Dim acc As Access.Application 

    Do 
     Set acc = GetObject(, "Access.Application") 

     If IsNull(acc) Then Exit Do 

     acc.Quit 
    Loop 
End Sub 

在運行上述,檢查任務管理器。如果你看到msaccess.exe,那麼你很可能有一個循環對象引用。這將阻止Access的關閉。欲瞭解更多信息,請看http://msdn.microsoft.com/en-us/library/aa716190(VS.60).aspx

+0

在我看來,這是不明智的,因爲如果您在記錄被鎖定進行編輯時強制退出Access,它可能會損壞數據文件。 – 2010-12-24 03:09:21