封存 Access 資料

您可以定期封存舊的或非使用中的記錄,讓您的 Microsoft Access 資料庫保持井然有序並易於管理。 您可以封存資料庫中的所有資料表、特定的資料表,或只封存特定記錄的所有資料表,例如特定日期之前的記錄。 本主題說明如何使用三種不同的選項來封存 Access 資料庫中的資料。

本文內容

您何時應該考慮封存?

定期取代表格

定期取代所有資料表

定期將記錄移至封存表

您何時應該考慮封存?

當您電腦上的資料庫包含您不打算再使用的資料時,但您想要讓資料在某個時間點需要時,或是符合資料保留原則,存檔是一種保留這些資料的好方法。 存檔通常也會用來根據日期條件(例如每個月的結尾)來保留資料。

封存資料的方式

下表列出了要封存資料的方法、方法的描述、有關何時應使用每個方法的說明,以及該方法的其他特定考慮。

方法

描述

使用時機...

其他考量

定期取代表格

定期製作特定資料表的封存複本,並以新的空白表格複本取代該表格。

資料表中的所有記錄都符合您用來判斷是否要封存的條件。

範例:您有一個儲存每日溫度極限的表格。 您每年都要封存表格,並以空白的方式開始新的工作。

  • 可能必須解決參照完整性問題。 如需詳細資訊,請參閱關於參照完整性的章節。

定期取代所有資料表

定期製作後端資料庫的封存複本,然後以新的空白版本取代後端資料庫。 需要分割資料庫(由包含所有資料表的後端資料庫檔案,以及包含所有其他資料庫物件的前端資料庫檔案)組成的資料庫。

資料庫中大部分資料表中的所有記錄,都符合您用來判斷是否要封存的條件。

範例:您的資料庫包含幾個有不同類型 meteorological 資料的資料表。 每年,您都會封存所有的表格。

  • 如果您有任何查閱表格(您用來儲存查詢值(例如郵遞區號或部門)的資料表,您可能需要將該資料匯入新的後端資料庫。

  • 您必須手動封存資料庫。 您無法使用宏進行這個方法。

定期將記錄移至封存表

定期執行選取記錄以進行封存的查詢,並將資料新增到封存資料表,然後執行查詢來選取相同的記錄(從原始資料表),並將其刪除。

表格中的部分記錄符合您用來判斷是否要封存的條件。

範例:如果已取出的日期至少為一年,您想要封存文件庫事務(取出)。

  • 可能必須處理 參考完整性,特別是如果您要封存的記錄位於 一對多關聯性的一側。 如需詳細資訊,請參閱關於參照完整性的章節。

警告: 如果您需要在查詢中使用參數,您應該建立表單來處理參數。 否則,您會面臨資料遺失的風險。

解決參照完整性

如果您要封存的記錄與其他資料表中的記錄相關,您可能必須處理關聯性。 如果您要封存的記錄是「子級」記錄(它們屬於 一對多關聯性的「多」端),您可能會安全地封存這些記錄,而不需要擔心。 如果您想要封存的記錄是 "parent" 記錄(它們屬於 一對多關聯性的「一」端),當您將其與其相關的「子級」記錄封存時,可能會發生下列情況:

  • 防止您刪除 "parent" 記錄。 如果您已將 "parent" 記錄附加到 [封存] 資料表,這可能會造成問題。

    - 或 -

  • 變成「孤立」—屬於不存在之「父級」的記錄。 這可能會導致資料庫中使用「孤立」記錄的資料完整性與功能問題。

若要考慮參照完整性,請執行下列步驟:

  1. 決定哪些 "child" 記錄屬於您要封存的記錄。 例如,若要封存 lent 文件庫中的資產記錄,請先判斷這些資產是否有任何開啟的交易,亦即,是否已取出資產,但尚未傳回。

  2. 執行下列其中一個動作:

    • 如果「子級」記錄總是可以安全刪除,請確定該關聯會強制執行「串聯刪除」的參照完整性。 這可確保所有相關的「子級」記錄都將被刪除。

    • 如果無法安全地刪除 "child" 記錄,請考慮將資料庫中的所有資料表封存。

    • 建立查詢以選取沒有「子級」記錄的 "parent" 記錄。 接著,使用該第一個查詢來建立您的封存查詢(請參閱定期將記錄移動到封存表中),而不是使用「上層」資料表。

頁面頂端

定期取代表格

如果您想要封存表格中的所有資料,您可以使用空白複本來定期取代資料表。

重要: 如果您封存的資料表與其他資料表相關,您可能需要解決參照完整性

  1. 在 [功能窗格] 中,選取您要封存的資料表,按 CTRL + C,然後按 CTRL + V。

  2. 在 [貼上表格為] 對話方塊的 [貼上選項] 底下,選取 [僅限結構],然後按一下[確定]

    Access 會將複本命名為原始表格名稱的複本

  3. 在 [功能窗格] 中,以滑鼠右鍵按一下原始資料表,然後按一下快捷方式功能表上的 [重新命名]。

    為數據表指定一個名稱,以指出它所包含的內容,例如 "DailyTemperatureExtremes_archive_2019"。

  4. 在 [功能窗格] 中,以滑鼠右鍵按一下空白複本,然後按一下快捷方式功能表上的 [重新命名]。 以原始資料表的名稱重新命名。

頁面頂端

定期取代所有資料表

如果您使用分割資料庫,您可以透過以空白複本取代後端資料庫,定期取代所有資料表。

若要這樣做,請先準備空的複本。 除非您的資料庫設計變更,否則您可以在每次封存時重複使用這個空白複本。 若要封存,只要重新命名現有的後端資料庫,即可指出它是封存,然後將空複本儲存為新的後端資料庫。

準備後端資料庫的空複本

首先,為後端資料庫中的所有資料表匯入資料表定義。

  1. 按一下 [檔案] 索引卷標上的[新增],選取 [空白資料庫],然後按一下 [建立]。

  2. 關閉 Table1。

  3. 在 [外部資料] 索引標籤上,按一下 [匯入 & 連結] 群組中的 [ Access]。

  4. 在 [取得外部資料-Access 資料庫] 對話方塊中,選取 [將資料表、查詢、表單、報表、宏和模組匯入至目前資料庫],然後按一下[流覽]

  5. 在 [開啟檔案] 對話方塊中,選取後端資料庫。 按一下 [開啟] 以關閉 [開啟檔案] 對話方塊,然後按一下[確定]

  6. 在 [匯入物件] 對話方塊中,按一下 [選項]。

  7. 在 [匯入資料表]底下,選取 [僅限定義]。

  8. 在 [表格] 索引標籤上,按一下 [全選],按一下[確定],然後按一下 [關閉]。

將資料新增至空白複本中的任何查閱表格 

針對每個查閱表格,請執行下列步驟:

  1. 連結至現有後端資料庫中的查閱表格。

  2. 建立新增查詢,將原件中的所有記錄新增至複本。

以空白複本取代後端資料庫

首先,重新命名現有的後端資料庫,以指出它現在是封存。 接著,開啟空白複本,然後使用原始的後端資料庫名稱來儲存該檔案。

  1. 按一下 [檔案] 索引標籤,然後按一下 [另存資料庫為]。 系統可能會提示您關閉所有開啟的物件;如果是,請按一下[確定]。 [另存新檔] 對話方塊隨即開啟。

  2. 在 [另存新檔] 方塊(位於 [另存新檔] 對話方塊的頂端)中,確認您要將檔案儲存在與原始後端資料庫相同的位置。

  3. 在 [檔案名] 方塊中,輸入原始後端資料庫的名稱。

  4. 在 [存檔類型] 方塊中,選取 [ Access 資料庫(* .accdb)]。

頁面頂端

定期將記錄移至封存表

這是四個步驟的程式,需要在包含您要封存之記錄的資料表中建立一個空複本,並建立新增查詢,將原始資料表中的記錄複製到 [封存] 資料表,建立 刪除查詢 以從 ori 移除已封存的記錄ginal [表格],最後建立宏來執行這兩個可在您想要封存時執行的查詢。 如果您遵循下列步驟,則看起來很複雜的程式可能很容易:

步驟1:建立封存資料表

步驟2:建立附加查詢以將資料複製到 [封存] 資料表

步驟3:建立刪除查詢以從原始資料表中移除資料

步驟4:建立宏以執行附加與刪除查詢

步驟1:建立封存資料表

若要將所有已歸檔的記錄保留在一個資料表中,請執行一次此步驟。 您在這個步驟中建立的 [封存] 資料表將會保留您所有已存檔的記錄。

若要在建立新的 [封存] 資料表時將它刪除,而不是執行此步驟,您可以使用 產生資料表查詢 將資料複製到您的 [封存] 資料表。 若要這樣做,請跳至步驟 2

若要在每次封存時都使用新的 [封存] 資料表,但同時保留舊的封存資料表,請在建立新的 [封存] 資料表之前重新命名。 如果您是以日期為基礎進行封存,考慮根據所代表的日期範圍來命名舊的封存表。

  1. 在 [功能窗格] 中,選取含有要封存記錄的資料表,按 CTRL + C,然後按 CTRL + V。

  2. 在 [表格名稱] 方塊中,刪除 [複本],然後將底線及「封存」一詞加到現有的資料表名稱,然後按一下[確定]。 例如,如果原始資料表的名稱為 [事務],則 [封存] 資料表稱為 [ Transactions_archive]。

    貼上資料表成為

  3. 在 [貼上表格為] 對話方塊的 [貼上選項] 底下,選取 [僅限結構]。

步驟2:建立附加查詢以將資料複製到 [封存] 資料表

  1. 在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。

  2. 使用 [顯示資料表] 對話方塊來新增含有您要封存之記錄的資料表,然後關閉 [顯示資料表] 對話方塊。

  3. 在查詢設計視窗中,在您剛剛新增的資料表中,按兩下星號(*)。 資料表名稱和星號會出現在查詢設計格線的第一欄。

    附註: 星號表示查詢應該包含查詢輸出中資料表的所有欄位。 當您使用星號時,如果您在表格中新增或移除欄位,查詢輸出就會據此進行調整。

  4. 在 [查詢設計] 視窗中,按兩下您要用來指定記錄在封存前應符合之條件的欄位。 例如,如果您的 [事務] 資料表有一個名為「已取出」的欄位,而您想要封存該日期超過一年以上的所有記錄,您可以按兩下該欄位,它會出現在查詢設計格線的下一個空白資料行中。

    查詢設計格線

    如果您想要對其他欄位使用準則,請重複此步驟。

  5. 使用 [準則] 列來指定您剛新增之欄位的準則。 例如,您可以使用 [準則] 列中的運算式,指定已核取的日期必須早于2019年1月1日< # 1/1/2019 #

    如果您的準則值會在您每次封存時變更,您應該讓查詢要求輸入。 若要這樣做,您可以在 [準則] 列中使用參數,讓查詢要求輸入。 若要使用參數,請像平常一樣使用運算式,而不是指定的值,請使用由方括弧括住的簡短問題。 例如,您可以使用運算式< [封存已完成之前完成的事務]:],如下所示:

    參數運算式

    如需使用參數的詳細資訊,請參閱查詢簡介一文。

    您可能也想要使用or列來指定其他條件。 如需使用準則的詳細資訊,請參閱查詢準則範例一文。

    提示: 如果您使用日期欄位來指定準則,而您想要封存超過目前日期的所有記錄,請在日期欄位的 [準則] 列中輸入<日期()

  6. 執行下列其中一個動作:

    如果您已建立 [封存] 資料表,請使用新增查詢,將指定的記錄新增至該表格:

    1. 在 [設計] 索引標籤的 [查詢類型] 群組中,按一下 [新增]。

    2. 在 [附加] 對話方塊的 [資料表名稱] 方塊中,選取 [封存] 資料表的名稱,然後按一下[確定]

      附加至

      在查詢設計格線中,會出現 [附加至] 列。

    3. 針對您用來指定準則的任何欄位,清除 [附加至] 列。 (只有星號應該有 [附加至] 的值)。

      查詢設計格線 [附加至] 列

      如果您尚未建立 [封存] 資料表,請使用 [產生資料表] 查詢,透過指定的記錄來建立 [封存] 資料表:

    4. [設計] 索引標籤的 [查詢類型] 群組中,按一下 [製成資料表]

    5. 在 [產生資料表] 對話方塊的 [資料表名稱] 方塊中,輸入 [封存] 資料表的名稱,然後按一下[確定]

  7. 按下 CTRL+S 儲存查詢。

步驟3:建立刪除查詢以從原始資料表中移除資料

  1. 在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。

  2. 使用 [顯示資料表] 對話方塊,新增含有您要封存之記錄的資料表。 關閉 [顯示資料表] 對話方塊。

  3. 在查詢設計視窗中,在您剛剛新增的資料表中,按兩下星號(*)。 資料表名稱和星號會出現在查詢設計格線的第一欄。

  4. 在 [查詢設計] 視窗中,按兩下您在附加查詢中用來指定條件的相同欄位。

  5. 使用 [準則] 列來指定您剛新增之欄位的準則。 如需使用準則的詳細資訊,請參閱查詢準則範例一文。

    重要: 如果 [追加] 或 [產生資料表] 查詢使用參數,請確定您的刪除查詢也一樣。 另請記住,您為兩個查詢輸入相同的值。 如果您輸入不同的參數值,可能會遺失資料。 若要防止資料遺失,請考慮使用表單來收集值,並讓查詢在表單中要求輸入值。 如需詳細資訊,請參閱查詢簡介一文。

  6. 在 [設計] 索引標籤的 [查詢類型] 群組中,按一下 [刪除]。

    [刪除] 列隨即出現在查詢設計格線中。

    查詢設計格線 [刪除] 列

  7. 按下 CTRL+S 儲存查詢。

步驟4:建立宏以執行附加與刪除查詢

  1. 在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]。

  2. 按一下 [新增動作] 旁的下拉式箭號,然後按一下 [ OpenQuery]。

    OpenQuery動作隨即出現並顯示其引數。

  3. 在 [查詢名稱] 方塊中,選取您在步驟 2中建立的([附加] 或 [產生資料表])查詢。

  4. 按一下 [新增動作] 旁的下拉式箭號,然後按一下 [ OpenQuery]。

    OpenQuery動作隨即出現並顯示其引數。

  5. 在 [查詢名稱] 方塊中,選取您在步驟 3中建立的刪除查詢。

  6. 按 CTRL + S 儲存宏。

    當您想要封存記錄時,請執行宏。

頁面頂端

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×