建立並執行刪除查詢

建立並執行刪除查詢

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

當您想要快速刪除大量資料,或刪除一組定期 Access 桌面資料庫中的資料時,刪除或更新查詢可能很有用因為查詢讓您指定的條件快速找出並刪除資料。使用查詢可以也會是不起,因為您可以重複使用已儲存的查詢。

附註: 刪除任何資料,或執行刪除查詢之前,請確定您擁有您的 Access 桌面資料庫的備份。

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

重要: 本文中的資訊被為了使用只能與桌面資料庫。您無法使用 [刪除],或更新 Access web 應用程式中的查詢。

本文內容

選擇查詢類型

使用刪除查詢

使用更新查詢

其他資訊

疑難排解提示

選擇查詢類型

您可使用更新查詢或刪除查詢,從資料庫刪除資料。依據下列資料表中的詳細資料選取查詢:

查詢類型

使用時機

結果

使用刪除查詢

從資料表或同時從 2 個關聯資料表移除整筆記錄 (列)。

附註: 若記錄處於一對多關聯中代表「一」的那一方,則可能需要在執行刪除查詢前,先變更關聯。請參閱從關聯資料表刪除資料的章節。

刪除查詢會移除每個欄位中的所有資料,包括使該筆記錄具有唯一性的索引鍵值

使用更新查詢

從資料表刪除個別欄位值。

可讓您更輕鬆地利用將現有值更新為 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 函數,傳回在今天日期和今天日期後 3 個月之間的所有記錄。

Is Null

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

Is Not Null

會傳回包含任何值 (除了 Null 以外) 的所有記錄。

""

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

頁面頂端

疑難排解提示

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

如果您使用多個資料表建立刪除查詢,而且該查詢的 [唯一記錄] 屬性是設定為 [否],則當您執行查詢時,Access 會顯示 [無法從特定的資料表中刪除] 的錯誤訊息。

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

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

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

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

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

停止停用模式而不要封鎖查詢

根據預設,如果開啟您尚未選擇信任或不受信任的位置,在桌面資料庫 Access 會封鎖所有執行的巨集指令查詢。

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

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

看見該訊息時,請採取下列步驟來啟用已封銷的內容:

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

如需停用模式與 Access 安全性的詳細資訊,請參閱資料庫物件在受信任與不受信任時的表現一文。

 頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×