Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

當您想要快速刪除大量數據,或定期刪除 Access 桌面資料庫中的一組數據時,刪除或更新查詢可能會很有用,因為查詢可讓您指定準則來快速尋找及刪除數據。 使用查詢也可以省時,因為您可以重複使用已儲存的查詢。

附註: 在您刪除任何資料,或執行刪除查詢之前,請確認您已備份 Access 桌面資料庫。

如果您只想要刪除一些記錄,則不需要查詢。 只要在 [資料工作表檢視] 中開啟資料表,選取 (欄) 或記錄 (您要刪除) 列的欄位,然後按 DELETE。

重要: 本文中的資訊僅適用於桌面資料庫。 您無法在 Access Web App 中使用刪除或更新查詢。

本文內容

選擇查詢類型

您可以使用更新查詢或刪除查詢來移除資料庫中的數據。 根據下表中的詳細資料選取查詢:

查詢類型

使用時機

結果​​

使用刪除查詢

若要同時從數據表或兩個相關數據表移除 (列) 整筆記錄。

附註: 如果記錄位於一對多關聯的「一」端,您可能需要先變更關聯,才能執行刪除查詢。 請參閱 從相關數據表刪除數據一節。

刪除查詢會移除每個欄位中的所有數據,包括讓記錄獨一無二的索引鍵值

使用更新查詢

若要刪除資料表中的個別域值。

將現有值更新為 Null 值 (,即不使用資料) 或零長度字串, (兩組中間沒有空格的雙引號) ,讓刪除值變得更輕鬆。

頁面頂端

使用查詢刪除任何數據之前必須先確認的事項

  • 請確定該檔案不是唯讀檔案:

    1. 以滑鼠右鍵按兩下 [開始 ],然後按兩下 [開啟 Windows 檔案總管]。

    2. 以滑鼠右鍵按兩下資料庫檔案,然後按兩下 [ 內容]

    3. 查看是否已選取 唯讀 屬性。

  • 確認您具備從資料庫刪除記錄的必要許可權。 如果您不確定,請連絡您的系統管理員或資料庫設計工具。

  • 請確定您已啟用資料庫中的內容。 根據預設,除非您先信任資料庫,否則 Access 會封鎖 (刪除、更新及建立數據表查詢) 的所有宏指令查詢。 如需信任資料庫的相關信息,請參閱 停止停用模式封鎖查詢一節。

  • 要求資料庫的其他使用者關閉使用您要刪除之數據的所有資料表、表單、查詢和報表。 這有助於避免違反鎖定。

  • 在編輯或刪除記錄之前,如果您想要反轉變更,最好先 建立資料庫的備份複本

提示: 如果資料庫有大量用戶連線,您可能需要關閉資料庫,然後以 獨佔 模式重新開啟資料庫。

以獨佔模式開啟資料庫

  1. 按兩下 [ 開啟]> [檔案] 索引標籤。

  2. 流覽至並指向選取資料庫,按兩下 [ 啟] 按鈕旁的箭號,然後按兩下 [ 獨佔式開啟]

    在獨佔模式中開啟檔案

備份資料庫

  1. 按兩下 [ 檔案] 索引 標籤,指向 [ 另存新檔]

  2. 按兩下 [另存資料庫為],再按兩下 [備份資料庫]。 Access 會關閉原始檔案、建立備份複本,然後重新開啟原始檔案。

  3. 按兩下 [另存新 檔],並指定備份複本的名稱和位置,然後按兩下 [ 儲存]

附註: 如果您使用唯讀或在舊版 Access 中建立的資料庫,您可能會收到無法建立資料庫備份的訊息。

若要回復至備份,請關閉並重新命名原始檔案,讓備份複本可以使用原始版本的名稱。 指派原始版本的名稱給備份複本,然後在 Access 中開啟重新命名後的備份。

使用刪除查詢

若要建立刪除查詢,請按兩下 [ 建立] 索引 標籤,在 [ 查詢] 群組中,按兩下 [ 查詢設計]。 按兩下您要刪除記錄的每一個資料表,然後按兩下[ 關閉]

數據表會顯示為查詢設計網格線上方區段的視窗。 從欄位清單中,按兩下星號 (*) ,將資料表中的所有欄位新增到設計網格線。

在刪除查詢中使用特定準則

重要: 使用準則僅傳回您要刪除的記錄。 否則,刪除查詢會移除資料表中的每一筆記錄。

按兩下要指定為刪除準則的欄位,在查詢設計工具的 [ 準則 ] 列中輸入其中一個準則,然後清除每個準則字段的 [ 顯示 ] 複選框。

您可能會想要使用此選項的範例:假設您想要移除客戶所有擱置中的訂單。 若只要尋找這些記錄,您會將 [客戶標識符] 和 [訂單日期] 字段新增至查詢設計網格線,然後輸入客戶的標識符編號,以及該客戶訂單無效的日期。

  1. 在 [ 設計] 索引 標籤上,按兩下 [ 檢視 > 數據工作表檢視]

  2. 確認查詢傳回您要刪除的記錄,然後按 CTRL+S 以儲存查詢。

  3. 若要執行查詢,請在 [導航窗格] 中按兩下查詢。

頁面頂端

使用更新查詢

附註: 您無法在 Access Web App 中使用更新查詢選項。

本節說明如何使用更新查詢來刪除數據表中的個別欄位。 請記住,根據您指定的準則,執行更新查詢以刪除數據會將現有值變更為 NULL 或零長度字串, (一對在) 之間沒有空格的雙引號。

  1. 按兩下 [ 建立] 索引 標籤,然後按兩下 [查詢] 群組中的 [ 查詢設計]

  2. 選取含有您要刪除之數據的數據表 (如果數據表相關,請選取關聯) 「一」端的數據表,按兩下 [ 新增],然後按兩下 [ 關閉]

    數據表會顯示為查詢設計網格線上方區段的視窗。 視窗會列出所選取資料表中的所有欄位。

  3. 按兩下星號 (*) ,將資料表中的所有欄位新增到設計網格線。 新增所有數據表欄位可讓刪除查詢從資料表中移除 (列) 整筆記錄。

    或者,您可以在設計工具的 [ 準則 ] 列中輸入一或多個字段的準則,然後清除每個準則字段的 [ 顯示 ] 複選框。 如需使用準則的詳細資訊,請參閱 選取查詢數據表的範例準則

    附註: 您可以使用準則只傳回您要變更的記錄。 否則,更新查詢會設定為查詢中每個欄位中的每一筆記錄都為 NULL。

  4. 在 [設計] 索引標籤的 [結果] 群組中,按一下 [檢視],再按一下 [資料工作表檢視]。

  5. 確認查詢傳回您要設定為 NULL 或零長度字串的記錄, (一對中間沒有空格的雙引號 (“”) 。

  6. 視需要重複步驟 3 到 5,並變更欄位或準則,直到查詢僅傳回您要刪除的數據為止,然後按 CTRL+S 儲存查詢。

  7. 若要執行查詢,請在 [導航窗格] 中按兩下查詢。

頁面頂端

其他資訊

刪除關聯數據表中的數據

如果您想要刪除多個相關資料表中的數據,您必須針對每個關聯啟用 [引用完整性 ] 和 [串聯刪除相關記錄 ] 選項。 這可讓您的查詢刪除關聯「一」和「多」端之數據表中的數據。 準備刪除的相關資料需要驗證下列事項:

  • 判斷哪些記錄位於關聯的「一」端,哪些位於「多」端。

  • 如果您需要刪除「多」端關聯與相關記錄「一」端的記錄,請啟用一組稱為「引用完整性」的規則,並啟用串聯刪除。 本節中的步驟說明引用完整性,以及如何執行這兩項工作。

  • 如果您只需要刪除關聯「一」端的記錄,請先刪除該關聯,然後刪除數據。

如果您只需要移除關聯「多」端的數據,您可以建立並執行刪除查詢,而不需要變更關聯。

若要找出哪些記錄位於關聯的「一」和「多」端,請在 [ 資料庫工具 ] 索引標籤上,按兩下 [資料庫關聯 ] 群組中的 [ 資料庫關聯圖]。 [ 資料庫關聯圖] 索引 標籤會顯示資料庫中的數據表和關聯。 每個關聯都會被描述為連接欄位之間數據表的線條。

下圖顯示一般關聯。 資料庫中的關聯大部分(如果不是全部)都有「一」端和「多」端。 關聯圖代表「一」端與數位一 (1) ,以及「多」端與無限 () 符號。

兩個資料表之間的關聯

當您刪除關聯「一」端的記錄時,也會刪除關聯「多」端的所有相關記錄。 不過,當您刪除關聯「多」端的記錄時,通常不會刪除「一」端的記錄。

此外,Access 會自動強制執行一組稱為引用完整性的規則。 這些規則可確保資料庫中的外鍵包含正確的值。 外鍵是一個數據行,其值與另一個數據表的主鍵數據行中的值相符。

編輯關聯

只有當您需要刪除關聯「一」和「多」端的數據時,請遵循下列步驟。

  1. 在 [資料庫工具] 索引標籤上的 [資料庫關聯圖] 群組中,按一下 [資料庫關聯圖]。

  2. 以滑鼠右鍵按兩下關聯 (線) 連接刪除作業中包含的數據表,然後按下快捷方式選單上的 [ 編輯 關聯]。

  3. 在 [ 編輯關聯] 對話框中,確定已選取 [ 強迫引用完整性] 複 選框。

  4. 選取 [ 串聯刪除相關記錄] 複選框。

    附註: 在您再次停用此屬性之前,刪除關聯「一」端的記錄將會刪除關聯「多」端的所有相關記錄。

  5. 單擊 [確定],關閉 [資料庫 關聯圖 ] 窗格,然後繼續下一組步驟。

刪除關聯

  1. 如果您尚未這麼做,請開啟 [資料庫關聯 ] 窗格。

  2. 在 [資料庫工具] 索引標籤上的 [資料庫關聯圖] 群組中,按一下 [資料庫關聯圖]。

    記下關聯中包含的欄位,以便在刪除資料后還原關聯。

  3. 以滑鼠右鍵按兩下關聯 (線) 連接刪除作業中的數據表,然後按下快捷方式選單上的 [ 刪除 ]。

附註: 若要還原關聯,請依照前述步驟開啟 [資料庫關聯圖 ] 窗格 ,然後從「一」數據表拖曳主鍵字段,並將其放在「多」數據表的外鍵字段上。 [ 編輯關聯] 對話框隨即出現。 如果舊的關聯強制執行引用完整性,請選取 [強迫引用完整性],然後按兩下 [ 建立]。 否則,只要按兩下 [ 建立]

頁面頂端

選取查詢的範例準則

下表列出一些範例準則,當您想要確保只刪除您要刪除的數據時,可以在選取查詢中使用這些準則。 其中一些範例使用通配符。

準則

影響

> 234

傳回所有大於 234 的數字。 若要尋找所有小於 234 的數字,請使用 <234。

>= “Cajhen”

傳回從 Cajhen 到字母表最後一個字母之間的所有記錄。

Between #2/2/2010# And #12/1/2010#

傳回 2010 年 2 月 2 日到 2010 年 12 月 1 日 (ANSI-89) 日期。 如果資料庫是使用 ANSI-92 萬用字元,請使用單引號 (') 來代替井字號 (#)。 範例:Between '2/2/2010' And '12/1/2010'。

Not "德國"

尋找欄位內容不完全等於 "德國" 的所有記錄。 這個準則將會傳回包含 "德國" 以及其他字元的記錄,例如 "德國 (歐元)" 或 "歐洲 (德國)"。

Not "T*"

會尋找除了以 T 為開頭之外的所有記錄。如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號 (%) 來代替星號 (*)。

Not "*t"

尋找結尾不是 t 的所有記錄。 如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號 (%) 來代替星號 (*)。

In(加拿大,英國)

會在清單中尋找包含「加拿大」或「英國」的所有記錄。

Like "[A-D]*"

在 [文字] 欄位中,尋找以字母 A 到 D 開頭的所有記錄。如果您的資料庫是使用 ANSI-92 通配符集,請使用百分比符號 (%) ,而不是星號 (*) 。

Like "*ar*"

會尋找包含 "ar" 這兩個連續字母的所有記錄。 如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號 (%) 來代替星號 (*)。

Like "Maison Dewe?"

會尋找符合下面條件的所有記錄:開頭是 "Maison" 並且第二個字串包含 5 個字母,其中前面 4 個字母是 "Dewe",最後一個則是未知的字母。 如果資料庫是使用 ANSI-92 萬用字元集,請使用底線 (_) 來代替問號 (?)。

#2/2/2010#

尋找 2010 年 2 月 2 日的所有記錄。 如果您的資料庫使用 ANSI-92 通配符集,請用單引號代替井字型大小括住日期 ('2/2/2010') 。

< Date() - 30

會使用 Date 函數,傳回 30 天以前的所有日期。

Date()

會使用 Date 函數,傳回包含今天日期的所有記錄。

Between Date() And DateAdd("M", 3, Date())

使用 DateDateAdd 函數傳回今天日期與今天日期三個月之間的所有記錄。

Is Null

會傳回包含 Null (空白或未定義) 值的所有記錄。

Is Not Null

傳回包含任何非 Null) 值 (的所有記錄。

""

會傳回包含零長度字串的所有記錄。 當您需要新增值至必要字段,但還不知道實際值時,可以使用零長度字串。 例如,某個欄位可能需要輸入傳真號碼,但有些客戶可能沒有傳真機。 在這種情況下,您不需要輸入數位,而是輸入一對中間沒有空格的雙引號, (“”) 。

頁面頂端

疑難排解提示

我為何會看見這則錯誤訊息,以及要如何修正錯誤?

如果您使用多個數據表建立刪除查詢,且查詢的 [ 唯一記錄 ] 屬性設為 [否],Access 會顯示錯誤訊息;執行查詢時 ,無法從指定的數據表中刪除

若要修正這個問題,請將查詢的 [唯一記錄] 屬性設定為 [是]。

  1. 在 [設計檢視] 中開啟刪除查詢。

  2. 如果查詢屬性表沒有開啟,請按 F4 加以開啟。

  3. 按一下查詢設計工具以顯示查詢屬性 (而非欄位屬性)。

  4. 在查詢屬性表中,找出 [唯一記錄] 屬性,並且將它設定為 [是]

防止停用模式封鎖查詢

根據預設,如果您開啟的桌面資料庫並未選擇信任,或未位於信任的位置,Access 會封鎖所有動作查詢的執行。

如果您嘗試執行某個動作查詢,但好像什麼動作都沒有發生,請確認 Access 狀態列是否出現下列訊息:

[巨集指令或事件已經被停用模式封鎖。]

當您看到該訊息時,請採取下列步驟來啟用封鎖的內容:

  • 在 [ 安全性警告 訊息列] 上,按兩下 [ 啟用內容],然後再次執行查詢。

頁面頂端

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。