保存對共享Access數(shù)據(jù)庫的設(shè)計更改(MDB)

字號:

注釋:本文中的信息僅適用于 Microsoft Access 數(shù)據(jù)庫 (.mdb)。
    當(dāng)有其他用戶正打開 Access 數(shù)據(jù)庫時,用戶不能將設(shè)計更改保存到 Microsoft Access 數(shù)據(jù)庫中。確保更改保存的途徑是以獨占 模式打開 Access 數(shù)據(jù)庫。
    通常,當(dāng)試圖對數(shù)據(jù)庫對象(不包括表和查詢)或共享模式下的某個項目進行設(shè)計更改時,如果您當(dāng)時是 Access 數(shù)據(jù)庫的用戶,Access 將臨時提升您以獨占模式使用 Access 數(shù)據(jù)庫。當(dāng)保存所有設(shè)計更改并關(guān)閉所有“設(shè)計”視圖窗口時,Access 會將 Access 數(shù)據(jù)庫返回為共享模式。在此期間,其他用戶將無法打開 Access 數(shù)據(jù)庫。如果您正在使用 Visual Basic 編輯器 (VBE),還需要保存所有打開的模塊并關(guān)閉 VBE。
    如果其他用戶以共享模式打開了 Access 數(shù)據(jù)庫而您試圖做一個主要的設(shè)計更改,如修改窗體,則 Access 會警告您可能不能保存更改。但如果其他用戶以共享模式打開 Access 數(shù)據(jù)庫而您試圖做一個次要的設(shè)計更改,如更改打印機設(shè)置,則 Access 不會警告您不能保存更改。在這兩種情況下,都要等到成為 Access 數(shù)據(jù)庫的用戶時,您才能保存主要設(shè)計更改,而 Access 保存次要設(shè)計更改。
    數(shù)據(jù)訪問頁的處理方式有所不同。盡管創(chuàng)建、重命名、移動和刪除數(shù)據(jù)訪問頁仍要求使用獨占模式(因為這要更改 Access 數(shù)據(jù)庫中的信息),但是編輯數(shù)據(jù)訪問頁不要求提升為獨占模式(因為相應(yīng)的 HTML 文件存在于數(shù)據(jù)庫以外的文件系統(tǒng)中)。
    主次設(shè)計更改之間的差別
    如果沒有以獨占模式訪問 Access 數(shù)據(jù)庫,則 Access 將在可能無法保存以下主要設(shè)計更改時向您發(fā)出警告:
    ◆在“設(shè)計”視圖中對數(shù)據(jù)庫對象的更改(除表和查詢以外)
    ◆在“窗體”視圖中對窗體屬性表的更改
    ◆在“Visual Basic 編輯器”中編譯項目、修改項目屬性、添加或刪除引用
    ◆重命名、粘貼或刪除數(shù)據(jù)庫對象
    ◆將數(shù)據(jù)庫對象另存為其他類型的數(shù)據(jù)庫對象
    ◆添加或修改命令欄上的控件
    ◆在“數(shù)據(jù)庫”窗口中編輯自定義組
    ◆創(chuàng)建、重命名、移動和刪除數(shù)據(jù)訪問頁
    如果沒有以獨占模式訪問 Access 數(shù)據(jù)庫,則在可能無法保存以下次要設(shè)計更改時,Access 不會發(fā)出警告:
    ◆對數(shù)據(jù)表格式(如線型和字體屬性)的更改
    ◆凍結(jié)、撤消凍結(jié)、隱藏和顯示數(shù)據(jù)表列
    ◆調(diào)整數(shù)據(jù)表列寬和行高
    ◆對窗體或數(shù)據(jù)表篩選或排序次序的更改
    ◆對子數(shù)據(jù)表狀態(tài)的更改(展開還是折疊)
    ◆對 OLE 對象的 OLE/DDE 鏈接的更改或?qū)ξ唇壎▽ο罂騼?nèi)容的更改
    ◆對打印機設(shè)置的更改
    ◆對命令欄的更改,如命令欄的位置及其是否可視
    ◆對“數(shù)據(jù)庫”窗口布局的更改
    共享 Access 數(shù)據(jù)庫設(shè)計和開發(fā)的策略
    如果要共享 Access 數(shù)據(jù)庫的設(shè)計,不妨考慮使用以下策略:
    ◆針對特定的開發(fā)者指定特定的對象或?qū)ο蠼M。例如,一位開發(fā)者設(shè)計窗體而另一位設(shè)計報表。然后,每位開發(fā)者可以在 Access 數(shù)據(jù)庫的私有副本上工作。當(dāng)開發(fā)小組準(zhǔn)備測試、組裝和生產(chǎn)時,每位開發(fā)者從各自的私有數(shù)據(jù)庫副本中將數(shù)據(jù)庫對象導(dǎo)出到主 Access 數(shù)據(jù)庫中。
    ◆使用源代碼控制程序。如果使用 Visual SourceSafe,定期運行“性能分析器”(在“工具”菜單上指向“分析”,然后單擊“性能”即可打開)來保持性能。
    有關(guān)在共享數(shù)據(jù)庫中保存設(shè)計更改的提示
    ◆如果另一位用戶已打開某個表或正在查看基于該表的查詢、窗體或報表中的數(shù)據(jù),則不能更改該表的設(shè)計。Microsoft Access 將告知該表為只讀。
    ◆如果某些對象彼此依賴,請同時將它們?nèi)扛拢@樣其他用戶才不至于打開不一致的對象版本。例如,如果要在某窗體中添加新字段,請在更新該窗體前確保也在基礎(chǔ)查詢中添加了新字段。
    ◆如果更改另一位用戶已經(jīng)打開的查詢,則該用戶必須在關(guān)閉并重新打開更改的對象后,才能使用最新的版本。在使用 Visual Basic for Applications (VBA) 模塊時,其他用戶必須先關(guān)閉 Access 數(shù)據(jù)庫然后再重新打開,才能運行更新后的 Function 或 Sub 過程。