那些對Access數據庫無經驗的開發人員,他們常常不知道改變復制為對象設計,而不是數據表,那樣會引起一些問題。這是令人失望的,首先, 因為復制似乎是分布完整的Access應用程序的最好途徑,畢竟,Microsoft是支持它的。
問題是,Jet的復制是設計有數據表的。這是因為Jet復制主要是用於Visual Basic應用程序的,在那裡,只有數據可以被存儲在*.mdb文件裡。這是它被測試最多的地方。對於Access 97來說,它總是被理解為,一個優秀的開發人員在將其轉換成副本之前總是要拆分數據庫,這樣,只有表才能使被復制。關於拆分Access 數據庫的概念,請參閱“在Microsoft Access 97中創建應用程序”的 第15章,第3節, 這些文檔在Access 97光盤中都有。
復制之前沒有拆分數據庫,你會發現你的副本的大小會“膨脹”。這是因為,你做的每一個到格式或模塊的改變,如,被放在隱藏表中,這樣就變成了需要被復制的信息。想象一下,你努力30次正確地去做某個模塊的代碼工作。這些改變(除最後一個不必要外)都被發送到所有的副本,開發人員在復制前不能拆分就會碰到一個惱人的問題:復制工作正確進行一會兒後(也許甚至幾個月),模塊會突然不能工作,或表單不能打開。
所以,你怎麼能拆分已經被復制的數據庫?我在這兒建議你根據以下的步驟去做。
不要使用拆分數據庫向導。這是因為,它正好用了錯誤的方式來拆分數據庫,這樣,你的數據表就不能再復制了---它把表移到新的文件中去了,並把對象的剩余部分放到了副本裡,而我們要做的,是要把數據表放在副本裡,並把其他的對象移到新的未復制的數據庫文件中。那樣的話,後端的剩余部分是可以復制的,作為當前副本設置的一部分,前端現在則是獨立數據庫,只能被拷貝到每一個應用程序用戶。
要確保你的副本都要同步,你就要知道,萬一你損壞了設計主,而你已經更新了數據。
創建新的Access數據庫文件,該文件會在前端。根據Microsoft例子,你可以添加"_fe"到初始數據庫名,雖然它確實對你要調用的並無關緊要。
把這個新的文件打開,從設計主輸入所有的查詢,表單,報表,宏以及模塊。如果你把開關板置於適當的你可以使用開關管理器控制的位置,那麼,你也需要輸入開關板項目表。
如果你已執行了數據庫安全,那麼,你會丟失在第4和第5步驟中輸入或連接的所有對象中的容許設置。所以,打開設計主,將這些容許設置拷貝到新的文件(即,前端)。
現在,你需要添加代碼到前端,該前端更新了連接到用戶的本地副本。在開發人員解決方案數據庫中,你會發現做這些工作的幫助。它隨Access 97作為樣本數據庫出現。從“使用多數據庫”分類中選擇“啟動連接表”。
分布前端到你的所有用戶。記住,該文件不應再被復制。你只須為需要的人拷貝即可。叫你的用戶切換到使用前端。當你確定他們現在在使用前端時,你就可以繼續下去,把設計主轉換成後端(下兩個步驟),便於他們同步下次時間,他們的副本也將變成後端。
打開設計主,刪除你在第4步驟中輸入的所有對象。
兩次緊致設計主,然後使其與你的其他副本同步。
注意:如果你想繼續Microsoft在其拆分數據庫向導中使用的准確的命名約定,那麼,你就不得不通過添加"_be"到其文件名來重新命名你的後端副本。最安全的辦法是在復制管理器裡,用移動副本命令來做。