您可以定期封存舊記錄或非作用中記錄,讓 Microsoft Access 資料庫井然有序且可管理。 您可以封存資料庫中的所有表格、特定表格,或僅封存特定記錄,例如,早於特定日期的記錄。 本主題說明如何使用三種不同的選項來封存 Access 資料庫中的資料。
本文內容
何時應考慮封存?
當您電腦上的資料庫包含您不打算再使用的資料,但您想要在某個時間點需要時隨時使用該資料,或是符合資料保留原則時,封存是保留這類資料的好方法。 封存也常用來根據日期條件保留資料,例如月底。
封存資料的方法
下表列出封存資料的方法、描述方法、說明何時應使用各個方法,以及該方法的其他特定考量。
|
方法 |
描述 |
使用時機... |
其他考量 |
|
定期製作特定資料表的封存復本,並以新的空白資料表複本取代該資料表。 |
資料表中的所有記錄都符合您用來判斷是否要封存的條件。 範例:您有一個表格用來儲存每日的溫度極值。 您每年都會封存資料表,並從空白資料表開始。 |
|
|
|
定期建立後端資料庫的封存復本,然後以新的空白資料庫取代後端資料庫。 需要分割資料庫 (資料庫組成:包含所有資料表的後端資料庫檔案;以及包含所有其他資料庫物件的前端資料庫檔案)。 |
資料庫中大部分資料表中的所有記錄都符合您用來判斷是否要封存的條件。 範例:您的資料庫是由數個具有不同類型天氣資料的資料表所組成。 您每年都會封存所有資料表。 |
|
|
|
定期執行會選取記錄以進行封存的查詢,並將資料新增至封存資料表,然後執行查詢以 (從原始資料表中) 選取相同的記錄並刪除它們。 |
資料表中的某些記錄符合您用來判斷是否要封存的條件。 範例:如果您的存入日期至少為一年,您想要封存文件庫交易 (取出)。 |
警告: 如果您需要在查詢中使用參數,您應該建立窗體來處理參數。 否則,您可能會遺失資料。 |
處理參考完整性
如果您要封存的記錄與其他資料表中的記錄相關,您可能需要處理關聯性。 如果您要封存的記錄是「子系」記錄 (它們屬於 一對多關聯性 的「多」端),您或許可以放心地封存這些記錄。 如果您要封存的記錄是「父系」記錄 (它們屬於 一對多關聯性 的「一」端),當您將相關的「子系」記錄封存時,可能會:
-
防止您刪除「父系」記錄。 如果您已經將「父系」記錄附加到封存資料表,這可能會造成問題。
- 或 -
-
成為「孤兒」——屬於不存在的「父項」的記錄。 這可能會導致資料庫中使用「孤立」記錄的資料完整性和功能發生問題。
若要考慮參考完整性,請採取下列步驟:
-
決定哪些「子系」記錄屬於您要封存的記錄。 例如,若要封存文件庫中資產的記錄,請先判斷這些資產是否已開啟任何交易,也就是資產是否已取出但未退回。
-
執行下列其中一個動作:
-
如果一律可以安全地刪除「子系」記錄,請確認關聯性會強制執行參考完整性,並串聯刪除。 這可確保刪除所有相關的「子系」記錄。
-
如果無法隨時安全地刪除「子系」記錄,請考慮封存資料庫中的所有資料表。
-
建立查詢,選取沒有「子系」記錄的「父系」記錄。 然後,使用第一個查詢建立封存查詢 (請參閱定期將記錄移至封存資料表) 一節,而非使用「父系」資料表。
-
定期取代表格
如果您想要封存資料表中的所有資料,您可以定期以空白複本取代資料表。
重要: 如果您封存的資料表與其他資料表相關,您可能需要處理參考完整性。
-
在 [功能窗格] 中,選取您要封存的資料表,按 CTRL+C,然後按 CTRL+V。
-
在 [貼上資料表為] 對話方塊的 [貼上選項] 底下,選取 [僅限結構],然後按一下 [確定]。 Access 會將複本命名為原始資料表名稱的複本。
-
在 [功能窗格] 中,以滑鼠右鍵單擊原始資料表,然後按下快顯功能表上的 [重新命名]。 為資料表命名另一個名稱來表示其包含的內容,例如 "DailyTemperatureExtremes_archive_2019"。
-
在 [功能窗格] 中,以滑鼠右鍵按一下空白複本,然後按下快顯功能表上的 [重新命名]。 使用原始資料表的名稱重新命名它。
定期取代所有資料表
如果您使用分割資料庫,您可以用空白複本取代後端資料庫,以定期取代所有資料表。
若要這麼做,請先準備空白複本。 除非資料庫的設計有所變更,否則您可以在每次封存時重複使用此空白複本。 若要封存,只要重新命名現有的後端資料庫,以表示它是封存,然後將空白復本儲存為新的後端資料庫。
準備後端資料庫的空白複本
首先,匯入後端資料庫中所有資料表的資料表定義。
-
在 [檔案] 索引標籤上,按一下 [新增],選取 [空白資料庫],然後按一下 [建立]。
-
關閉 Table1。
-
在 [外部資料] 索引標籤上,按一下 [匯入與連結] 群組中的 [Access]。
-
在 [取得外部資料 – Access 資料庫] 對話方塊中,選取 [將資料表、查詢、表單、報表、巨集和模組匯入到目前的資料庫],然後按一下 [瀏覽]。
-
在 [檔案開啟] 對話方塊中,選取後端資料庫並加以開啟。 按一下 [開啟] 以關閉 [檔案開啟] 對話方塊,然後按一下 [確定]。
-
在 [匯入物件] 對話方塊中,按一下 [選項]。
-
在 [匯入資料表] 底下,選取 [僅定義]。
-
在 [資料表] 索引標籤上,按一下 [全選],按一下 [確定],然後按一下 [關閉]。
將資料新增至空白複本中的任何查閱資料表
針對每個查閱資料表,執行下列步驟:
-
連結至現有後端資料庫中的查閱資料表。
-
建立新增查詢,將原始記錄的所有記錄新增至複本。
以空白複本取代後端資料庫
首先,重新命名現有的後端資料庫,表示它現在是封存。 然後,開啟空白複本,然後使用原始的後端資料庫名稱來儲存它。
-
按一下 [檔案] 索引標籤,再按一下 [另存資料庫]。 系統可能會提示您關閉所有開啟的物件;如果是,請按一下 [確定]。 [另存新檔] 對話方塊隨即開啟。
-
在 [儲存] 方塊中 (在 [另存新檔] 對話方塊頂端),請確定您將檔案儲存在原始後端資料庫的相同位置。
-
在 [檔案名稱] 方塊中,輸入後端資料庫的名稱。
-
在 [檔案類型] 方塊中,選取 [Access 資料庫 (*.accdb)]。
定期將記錄移至封存資料表
這是四個步驟的流程,需要對包含您要封存之記錄的資料表製作空白復本、建立新增查詢以將記錄從原始資料表複製到封存資料表、建立 刪除查詢 以移除原始資料表中的封存記錄,最後建立巨集以執行當您想要封存時可以執行的兩個查詢。 如果您依照下列順序執行這些步驟,這個看似複雜的流程就會很容易:
步驟 1:建立封存資料表
若要將所有封存的記錄保留在一個資料表中,請執行此步驟一次。 您在此步驟中建立的封存資料表會保留您所有封存的記錄。
若要在建立新資料表時刪除舊的封存資料表,不要執行此步驟,而是使用 產生資料表查詢 將資料複製到封存資料表。 若要這麼做,請跳到步驟 2。
如要在每次封存時使用新的封存資料表,但也要保留舊的封存資料表,請在建立新資料表之前重新命名舊的封存資料表。 如果您要根據日期進行封存,請考慮根據舊的封存資料表所代表的日期範圍命名舊的封存資料表。
-
在 [功能窗格] 中,選取要封存記錄的資料表,按 CTRL+C,然後按 CTRL+V。
-
在 [表格名稱] 方塊中,刪除 [複製] 文字,然後在現有表格名稱中加上底線和「封存」一詞,然後按一下 [確定]。 例如,如果原始資料表名為 Transactions,則將封存資料表命名為 Transactions_archive。
-
在 [貼上資料表] 對話方塊的 [貼上選項] 底下,選取 [僅結構]。
步驟 2:建立新增查詢以將資料複製到封存資料表
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]。
-
新增含有您要封存之記錄的資料表。
-
在查詢設計視窗中,按兩下您剛新增之資料表中的星號 (*)。 資料表名稱和星號會出現在查詢設計格線的第一欄中。
附註: 星號表示查詢應在查詢輸出中包含資料表的所有欄位。 當您使用星號時,如果從資料表新增或移除欄位,查詢輸出會隨之調整。
-
在查詢設計視窗中,按兩下您要用來指定記錄在封存前應符合之條件的欄位。 例如,如果您的交易資料表有一個名為 [存入日期] 的欄位,而您想要封存超過該日期一年的所有記錄,請按兩下該欄位,該欄位會出現在查詢設計格線的下一個空白欄中。
如果您想要將準則用於其他欄位,請重複此步驟。
-
使用 [準則] 列為您剛才新增的欄位指定準則。 例如,您可以使用 [準則] 列中的運算式 <#1/1/2019# 來指定 [存入日期] 必須早於 2019 年 1 月 1 日。
如果您的準則值在每次封存時都會變更,您應該讓查詢要求輸入。 若要這麼做,請使用 [準則] 列中的參數,讓查詢要求輸入。 若要使用參數,請像平常一樣使用運算式,但不要使用指定的值,而是使用以方括弧括住的簡短問題。 例如,您可以使用運算式 <[封存交易完成時間早於:],如下所示:
如需參數的詳細資訊,請參閱查詢簡介一文。
您可能也想要使用 [或] 列來指定替代條件。 如需使用準則的詳細資訊,請參閱查詢準則範例一文。
提示: 如果您使用日期欄位來指定準則,而您想要封存所有早於目前日期的記錄,請在日期欄位的 [準則] 列中輸入 <日期 () 。
-
執行下列其中一個動作:
如果您已經建立封存資料表,請使用新增查詢將指定的記錄新增至該資料表:
-
在 [設計] 索引標籤的 [查詢類型] 群組中,按一下 [新增]。
-
在 [附加] 對話方塊的 [資料表名稱] 方塊中,選取封存資料表的名稱,然後按一下 [確定]。
在查詢設計格線中,隨即會出現 [附加至] 列。
-
針對您用來指定準則的任何字段,清除 [ 附加至 ] 列。 (只有星號才應有 [附加至] 的值。)
如果您尚未建立封存資料表,請使用產生資料表查詢,用指定的記錄來建立封存資料表:
-
在 [設計] 索引標籤的 [查詢類型] 群組中,按一下 [製成資料表]。
-
在 [建立資料表] 對話方塊的 [表格名稱] 方塊中,輸入封存資料表的名稱,然後按一下 [確定]。
-
-
按下 CTRL+S 儲存查詢。
步驟 3:建立刪除查詢以從原始資料表移除資料
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]。
-
新增含有您要封存之記錄的資料表。
-
在查詢設計視窗中,按兩下您剛新增之資料表中的星號 (*)。 資料表名稱和星號會出現在查詢設計格線的第一欄中。
-
在查詢設計視窗中,按兩下您用來在新增查詢中指定條件的相同欄位。
-
使用 [準則] 列為您剛才新增的欄位指定準則。 如需使用準則的詳細資訊,請參閱查詢準則範例一文。
重要: 如果追加或產生資料表查詢已使用參數,請確定您的刪除查詢也會這麼做。 也請記住要為這兩個查詢輸入相同的值。 如果您輸入不同的參數值,可能會遺失資料。 為協助防止資料遺失,請考慮使用表單來收集值,並讓查詢要求表單輸入值。 如需詳細資訊,請參閱查詢簡介一文。
-
在 [設計] 索引標籤上,按一下 [查詢類型] 群組中的 [刪除]。
[刪除] 列會出現在查詢設計格線中。
-
按下 CTRL+S 儲存查詢。