建立並執行刪除查詢

建立並執行刪除查詢

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

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

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

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

本文內容

選取查詢類型

使用刪除查詢

使用更新查詢

其他資訊

疑難排解提示

選取查詢類型

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

查詢類型

使用時機

結果

使用刪除查詢

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

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

刪除查詢:移除每個欄位中的所有資料,包括使記錄獨一無二的鍵值

使用更新查詢

刪除資料表中的個別欄位值。

可將現有的值更新為 null 值(也就不是資料)或零長度字串(不含空格的一對雙引號),讓您更容易刪除值。

頁面頂端

使用查詢刪除任何資料前要驗證的事項

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

    1. 以滑鼠右鍵按一下 [開始],然後按一下 [開啟 Windows Explorer]。

    2. 以滑鼠右鍵按一下資料庫檔案,然後按一下 [屬性]。

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

  • 確認您具有從資料庫刪除記錄所需的許可權。 如果不確定,請與您的系統管理員或資料庫設計工具。

  • 請確定您已在資料庫中啟用內容。 根據預設,Access 會封鎖所有動作查詢(刪除、更新及產生資料表查詢),除非您首先信任資料庫。 如需信任資料庫的詳細資訊,請參閱停止停用模式來封鎖查詢

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

  • 編輯或刪除記錄前,製作資料庫備份複本是一個不錯的想法,以備您想要衝銷變更時使用。

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

若要在獨佔模式中開啟資料庫

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

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

    在獨佔模式中開啟檔案

備份資料庫

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

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

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

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

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

使用刪除查詢

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

該表在查詢設計格線的上方區段中顯示為一個視窗。 在欄位清單中,按兩下星號(*),將資料表中的所有欄位新增至設計格線線。

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

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

按兩下您要指定為刪除準則的欄位,然後在 [查詢設計工具] 的 [ 準則] 列中輸入其中一個準則,然後清除每個準則欄位的 [顯示] 核取方塊。

您可能會想要使用此選項的範例:假設您要移除客戶的所有待定訂單。 若要尋找這些記錄,您可以將 [客戶識別碼] 和 [訂單日期] 欄位新增至查詢設計格線,然後輸入客戶的識別碼編號,以及該客戶的訂單失效的日期。

  1. 按一下 [設計] 索引標籤上的 [視圖] > 資料工作表視圖]。

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

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

頁面頂端

使用更新查詢

附註:  您無法在 Access web 應用程式中使用 [更新查詢] 選項。

本節說明如何使用更新查詢來刪除資料表中的個別欄位。 請記住,執行更新查詢以刪除資料時,會將現有的值變更為 Null 或零長度字串(不含空格的一對雙引號),視您指定的準則而定。

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

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

    該表在查詢設計格線的上方區段中顯示為一個視窗。 視窗會列出所選資料表中的所有欄位。

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

    您也可以選擇在設計工具的 [準則] 資料列中輸入一或多個欄位的準則,然後清除每個準則欄位的 [顯示] 核取方塊。 如需使用準則的詳細資訊,請參閱 [選取查詢] 資料表的範例準則

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

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

  5. 確認查詢傳回您想要設定為 Null 的記錄,或零長度字串(中間不含空格的一對雙引號("")。

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

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

頁面頂端

其他資訊

刪除相關資料表中的資料

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

  • 決定哪些記錄位於關聯的「一」端,且位於「多」端。

  • 如果您需要刪除關聯「一」端的記錄,以及「多」端的相關記錄,您可以啟用一組稱為 [參照完整性] 的規則,並啟用 [層疊刪除]。 本節中的步驟說明參照完整性,以及如何執行這兩個工作。

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

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

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

下圖顯示的是一個典型的關聯。 資料庫中大部分的關聯(如果並非全部)都有「一」端和「多」端。 關聯圖表會以數位1(1)和「多」端(含無窮大()符號)表示「一」端。

兩個資料表之間的關聯

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

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

編輯關聯

只有在您需要刪除關聯的「一」和「多」端的資料時,才能遵循這些步驟。

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

  2. 以滑鼠右鍵按一下與刪除作業中所涉及之資料表連接的關聯(線條),然後按一下快捷方式功能表上的 [編輯關聯]。

  3. 在 [編輯關聯] 對話方塊中,確定已選取 [強制執行參照完整性] 核取方塊。

  4. 選取 [層疊刪除相關記錄] 核取方塊。

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

  5. 按一下[確定],關閉 [資料庫關聯圖] 窗格,然後移至下一組步驟。

刪除關聯

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

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

    記下關聯中所涉及的欄位,讓您可以在刪除資料後還原關聯。

  3. 以滑鼠右鍵按一下與刪除作業中所涉及之資料表連接的關聯(線條),然後按一下快捷方式功能表上的 [刪除]。

附註:  若要還原關聯,請按照前面的步驟開啟 [資料庫關聯圖] 窗格,然後將 [一 "] 資料表中的主鍵欄位拖放到" 多 "資料表的外鍵欄位。 [編輯關聯] 對話方塊即會出現。 如果舊的關聯強制參考完整性,請選取 [強制參考完整性],然後按一下 [建立]。 否則,只需按一下 [建立]。

頁面頂端

選取查詢的範例準則

下表列出一些範例準則,當您想要確認只刪除想要刪除的資料時,可以在選取查詢中使用。 這些範例中有一些是使用通配字元。

準則

影響

> 234

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

>= "Cajhen"

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

在 #2/2/2010 # 與 #12/1/2010 之間#

傳回2010年2月2日到1月 12 2010 日(ANSI-89)之間的日期。 如果資料庫是使用 ANSI-92 萬用字元,請使用單引號 (') 來代替井字號 (#)。 範例:介於 [2/2/2010] 與 "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 狀態列是否出現下列訊息:

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

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

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

頁首

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

需要更多協助?

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×