2014-03-28 38 views
0

如果有幾個人運行使用Workbooks.Open()的VBA宏,該工作簿會在共享網絡驅動器上打開相同的工作簿,對其進行更改並保存,我應該期待什麼行爲?假設所有5個宏都試圖同時進行保存?當多個用戶在共享驅動器上保存「非共享」工作簿時會發生什麼?

以這種方式編輯的工作簿不是「共享工作簿」。

期望的行爲將是最後一次保存進程將堅持,覆蓋以前處理的保存產生的任何衝突更改。

有沒有我不必擔心的錯誤? Window的文件系統會有這個問題嗎?這可能會導致應用程序或操作系統崩潰?

背景: 我正在開發一個項目,公司的4-5人希望同時更新工作簿。他們在使用Excel的「共享工作簿」設置時遇到了很多問題;具體而言,他們不想打擾它解決衝突的方式。我能想出的最快解決方案是讓他們使用單獨的工作簿,與其共享驅動器上的主工作簿同步。我將設置它,以便同步僅將現有記錄中的記錄或列修改爲主工作簿。修改將通過在工作簿中使用由三列組成的自然鍵來處理,以在本地和主工作簿中標識相應記錄,因此我不必擔心這些記錄是否在同一編號行中。

謝謝!

+1

使用內置事務日誌記錄的後端數據庫(如Jet)要好得多。 –

+0

我可能走這條路,但我想探索我所有的選擇,我很好奇excel/windows如何處理這個用例。 – BobbyA

+0

打開非共享工作簿(無論是通過VBA還是手動)都會將工作簿鎖定到該用戶。正如@CharlesWilliams指出的那樣,您確實需要一個後端數據庫來以一種可以「共享」而不會發生衝突的方式收集數據。如果需要,可以稍後將數據推送/拉到Excel。 –

回答

0

第一個打開它的用戶鎖定它,然後其他用戶只能打開一個只讀副本。這不會在你的情況下開始工作。
對於您的情況,您應該使用Excel作爲後端共享數據庫的前端

相關問題