2009-10-24 67 views
0

我有一個存儲在PC A上的Access數據庫和一個位於PC B和C上的應用程序。當應用程序從數據庫加載數據時,錯誤消息 「Microsoft Jet數據庫引擎無法打開'\ xxx.xxx.xxx.xxx \ FolderName \ Test.mdb'文件,它已經被另一個用戶獨佔打開,或者您需要查看其數據的權限,「出現。但是,如果我通過從PC B瀏覽一次並關閉數據庫文件來打開數據庫文件,則應用程序可以無誤地加載數據,因此與PC C相同。無法獲取MS Access數據庫中的數據

PC以對等方式鏈接, app是桌面應用程序。任何人都可以給我任何解決方案來加載數據而無需打開數據庫文件一次?

謝謝。

回答

1

這可能是由於應用程序上次使用時沒有正確關閉。檢查與數據庫相同的目錄中是否存在ldb(鎖定文件)。用文本編輯器打開它,你可以看到最後一個使用db的人是誰。如果數據庫沒有正確關閉,它仍然可能被鎖定。

+1

但是,如果多個人同時在數據庫中,這將不會有用,因爲您會在LDB文件中看到多個PC,而不知道哪個是最後一個。另外,這種情況很少發生,通常情況下只有當訪問崩潰或PC被BSODed或突然斷電時。 – 2009-10-24 06:45:42

0

sharing an Access database on a network (MDB)

要共享訪問數據庫,只需將* .mdb文件到網絡共享,並通過網絡將其打開。

+0

我已將數據庫文件放入網絡,但當應用程序訪問時,出現錯誤消息(請參閱上文)。我必須打開數據庫一次,然後應用程序可以訪問。我將安全性設置爲數據庫文件屬性中的Everyone(讀取,寫入)。 – 2009-10-24 05:28:07

1

在對等網絡上,您需要將權限設置爲完全控制。用戶需要能夠創建和刪除LDB文件。在文件服務器上,詳細權限類似於讀取,寫入,創建和刪除。

+0

他們不需要能夠刪除LDB文件,雖然這確實允許用戶透明地刪除損壞的LDB。請記住,如果沒有DELETE權限,LDB將以與Jet 3之前的方式完全相同的方式進行處理,即LDB文件在每個人都關閉之後仍保留在驅動器中,並且不會被刪除。 – 2009-10-24 20:56:52

+0

是的,但我喜歡整潔,並在最後一個用戶退出BE數據庫文件時刪除了LDB文件不需要我同意。 – 2009-10-24 22:29:15

0

這聽起來像是一個網絡問題給我。如果您已將表與UNC名稱鏈接(顯然使用IP地址,這是非常不明智的,除非它是無法更改的硬IP地址),這很好,但如果您設置了映射驅動器,則可以擁有一個優勢它在登錄時重新連接(而不是僅當請求數據時才重新連接),那就是在您首次通過Access請求時,已經初始化到「服務器」PC的連接。如果不是這樣,它可能會導致速度減慢和錯誤的錯誤信息。

另一種選擇是在客戶端PC的Autoexec.bat中添加:

NET USE \\xxx.xxx.xxx.xxx\FolderName 

你不必把它映射到一個驅動器號,只是聲明爲可用。這將完成與自動重新連接映射驅動器相同的功能,但沒有設置它的GUI(如映射驅動器)。