2016-02-05 116 views
1

我有一個.vbs腳本,用於複製我分發給我的用戶的主MS Access應用程序,名爲AccessApp.accde。該文件位於我的網絡上的特定位置。當我運行這個.vbs腳本時,AccessApp.accde被從網絡位置複製到具有相同名稱的特定本地位置,如果該文件已存在,則覆蓋該文件。關閉MS Access(.accde)文件(如果打開)

這很好用!

我唯一的障礙是關閉文件在我的用戶的本地位置,如果它已經打開。這很重要,因爲我的應用程序在內部執行版本檢查,並在用戶版本過期時運行此外部腳本。在複製新文件之前,腳本應該關閉文件,然後再次打開它。似乎它應該非常簡單,但我無法弄清楚用於檢查文件(特別是.accde)是否打開的正確的VB語法,如果是,則關閉它。

這是否有意義?我在這裏錯過了很簡單的東西嗎?

+0

你是說''AccessApp.accde'包括一個過程到vbs,然後取代'AccessApp.accde'? – HansUp

+0

@HansUp是的,這是正確的。 – mntyguy

+1

我記得,在你的程序中,你可以掏出vbs,然後在你的Access過程中立即執行'Application.Quit'。你有沒有嘗試過這種方法?您可能需要讓vbs等待一段時間('WScript.Sleep '),以便在複製新的ACCDE之前爲Access時間完成關閉。 – HansUp

回答

1

由於AccessApp.accde包括一個過程,它彈出一個VBScript,然後替換AccessApp.accde,告訴訪問本身立即關閉調用的VBScript後:

Application.Quit ' optionally followed by acQuitSaveAll or acQuitSaveNone 

您可以修改VBScript來等一會以便在複製新的ACCDE之前給Access時間以完成其關閉:

WScript.Sleep 2000 ' units are milliseconds, so this is 2 seconds