2009-07-21 39 views
3

有沒有辦法從另一個用戶正在使用的VB 6.0打開MS Access數據庫。從VB打開另一個用戶正在使用的MS Access數據庫

我有一個更新.mdb文件的服務。我想通過定期讀取它的一些參數來監視這個數據庫。

如果我嘗試只需打開DB(如果不使用DB其中工程)是這樣的:

Private Sub Form_Load() 
Dim CurrentDBFileName 
On Error GoTo ErrorHandler 
    Set BaseDB = OpenDatabase("c:\temp\log_db.mdb") 
    Set DestRS = BaseDB.OpenRecordset("current_log_info", dbOpenDynaset) 
    DestRS.MoveFirst 
    CurrentDBFileName = DestRS!CurrentDB 
    BaseDB.Close 
ErrorHandler: 
    Debug.Print Err.Number; Err.Description 
End Sub 

的錯誤,我得到:

3051 Microsoft Jet數據庫引擎無法打開文件'b:\ log_db.mdb'。它已經由另一個用戶專門打開,或者您需要查看其數據的權限。

我該如何解決這個問題?

由於不是我的,我無法更改更新MDB文件的服務。

回答

3

嘗試:

Set BaseDB = OpenDatabase("gui_db.mdb", false) 

要以共享模式打開數據庫。請注意,所有客戶端都必須以共享模式打開數據庫。

0

當然,最好的選擇是說服編寫updater服務的人,他應該真正以共享模式打開數據庫,而不是獨佔模式。

另一種選擇可能是將要更新的mdb表拆分爲單獨的後端(另一個Access數據庫或SQL Server)。然後,如果該服務獨佔打開前端文件,則應該仍共享您的後端文件。更新程序服務應該無法看到差異。

相關問題