這是我的2¢。
問題1 - 我從來沒有使用數據庫分離器,因爲我覺得我有更多的手動控制。如果您手動執行此操作,則可以將其轉換爲沒有數據庫分離器的版本。但是,如果您確實使用了分離器,那麼 - 在使用之前,您必須升級到具有分離器的版本。
手動這樣做是步驟。
- 備份一切。
- 將您的文件的副本創建到同一個目錄中。因此,如果您有一個MyApp.MDB,使用一個新名稱(如MyAppDATA.mdb)將副本創建到同一目錄中。
- 打開新的DATA文件(MyAppDATA.mdb)並刪除除TABLES之外的所有對象。
- 打開應用程序文件(MyApp.mdb)並刪除所有表格。
- 也在MyApp.mdb中...轉到文件/獲取外部數據/鏈接表菜單,將MyAppDATA.mdb中的錶鏈接到MyApp.mdb。選擇全部並創建鏈接。
應該這樣做。如果你搞砸了,你做了一個備份......對吧?
一些技巧和疑難解答...確保你去工具/選項,你不顯示系統和隱藏表。你只是不想從MyApp中刪除系統表。另一種方法是不要刪除以MSys或USys開頭的表格。
問題2 - 無論你有多少物體。事實上,你無論如何都沒有那麼多的物體。
問題3 - 是的......您將在MyAppData.mdb中進行後端更改,並且當您打開MyApp.mdb時,這些更改將自動奇蹟般地在那裏查看和查詢等等(在查詢設計器中,您可能需要保存/關閉/重新打開,以查看新的字段,如果您在查詢中進行了修改)。 EXCEPTION是新表您必須使用文件/獲取外部數據/鏈接表選項來創建到新表的鏈接。
需要記住的一件事(而且我希望你已經意識到)是分裂數據庫的一個缺點是,當你部署前端文件時,通常數據的相對路徑會因機器而異,訪問中沒有自動重新鏈接表。如果您的目標客戶端具有完全訪問權限,您可以隨時使用工具/數據庫實用程序/鏈接表管理器來刷新鏈接到正確的位置。如果你不能這樣做,那麼你將不得不執行以下任一操作:
1.編寫自動重新鏈接代碼。基本上它會檢查鏈接...如果無效,它將提示用戶輸入數據位置(或在INI文件中查找)並重新鏈接表格。
2.始終將您的應用程序部署到所有機器上的相同位置。如果您有針對您的應用程序的商業願景,這將無法正常工作......我提到它是出於學術原因。對於有限的部署,您可以對每臺計算機上的文件位置進行很多控制。
3.將數據文件(MyAppDATA.mdb)放入網絡共享中,並使用驅動器映射或UNC(\ myserver \ mydata \ ApplicationData \ MyAppData.mdb)通過網絡鏈接表。後者是首選,但他們都有與第二個相同的風險。
賽斯
PS這個答案假定Access 2003中
PPS如果你有商業願景爲您的應用則該表的連接一定是真正穩健的。 PPPS我同意這位評論者的意見,如果你的技能集合是你可能想冒險嘗試的話。
嗨Justin, 我沒有回答你的問題,但想分享我的不滿,因爲我必須遷移n個MDE,這成爲一個企業範圍的應用程序到SQL Server。我們遇到了幾個問題,無法執行遷移。因此,如果您長期思考並發現數據可能超出MS Access的限制,那麼我會說從SQL Server開始,並在ASP.NET中構建前端,出於某些原因,如果您不能獲得SQL Server的許可證,從他們的免費版本開始。 – 2009-07-18 14:51:38
呃,@CodeToGlory,MDE與你的後端有什麼關係? MDE僅適用於前端,因爲MDB和MDE之間的唯一區別在於MDE已將標準VBA代碼剝離,並且只保留編譯後的p代碼。這與數據表完全無關。 – 2009-07-18 21:03:14
什麼(球場)是Access的限制?我不知道1000個以下的物體可能是功能性的! – Justin 2009-07-19 01:22:00