當您想要在 Access 桌面資料庫中快速刪除大量資料或刪除一組資料時,刪除或更新查詢可能很有用,因為查詢可指定準則以快速尋找及刪除資料。 使用查詢也可以省時,因為您可以重複使用已儲存的查詢。
附註: 在您刪除任何資料,或執行刪除查詢之前,請確認您已備份 Access 桌面資料庫。
如果您只要刪除一些記錄,就不需要查詢。 只要在資料工作表視圖中開啟資料表,選取 (欄) 或 (列) 的記錄,然後按 DELETE。
重要: 本文中的資訊僅適用于桌面資料庫。 您無法在 Access Web App 中使用刪除或更新查詢。
本文內容
選取查詢類型
您可以使用更新查詢或刪除查詢,從資料庫刪除資料。 根據下表中的詳細資訊選取查詢:
查詢類型 |
使用時機 |
結果 |
---|---|---|
使用刪除查詢 |
若要移除資料 (資料) 或同時從兩個關聯資料表移除整列記錄。 附註: 如果記錄位於一對多關聯性的「一」端,您可能需要先變更關係,才能執行刪除查詢。 請參閱有關從 關聯資料表刪除資料一節。 |
刪除查詢會移除每個欄位中的所有資料,包括讓記錄獨一無二的索引鍵值 |
使用更新查詢 |
從資料表刪除個別域值。 |
將現有值更新為 Null 值 (即無資料) 或零長度字串 (以一對雙引號括在兩者之間沒有空格,以更輕鬆地刪除) 。 |
使用查詢刪除任何資料之前要驗證的事
-
請確定檔案不是唯讀檔案:
-
以滑鼠右鍵按一下 [開始 位置,然後按一下 [開啟 Windows Explorer。
-
以滑鼠右鍵按一下資料庫檔案,然後按一下 [ 內容。
-
查看是否 選取唯讀 屬性。
-
-
確認您擁有從資料庫刪除記錄的必要許可權。 如果您不確定,請與您的系統管理員或資料庫設計工具聯繫。
-
請確定您已啟用資料庫中的內容。 根據預設,除非您先信任 (,否則 Access 會) 刪除、更新和產生資料表查詢的所有動作查詢。 有關信任資料庫的資訊,請參閱停止 停用模式以封鎖查詢一節。
-
要求資料庫的其他使用者關閉所有使用您想要刪除之資料的資料表、表單、查詢和報表。 這有助於避免違反鎖定。
提示: 如果大量使用者連接到資料庫,您可能需要關閉資料庫,然後以獨佔模式 重新 開啟。
以獨佔模式開啟資料庫
-
按一下 [檔案 > 開啟。
-
流覽並指向以選取資料庫,按一下 [開啟> 按鈕旁的箭鍵,然後按一下[獨佔開啟。
備份資料庫
-
按一下 [ 檔案> 鍵 ,指向 另存新檔。
-
按一下 [另存資料庫為, 再按一下備份資料庫。 Access 會關閉原始檔案、建立備份複本,然後重新開啟原始檔案。
-
按一下 [另 存新案並指定備份副本的名稱及位置,然後按一下 [儲存。
附註: 如果您使用唯讀或以先前 Access 版本建立的資料庫,您可能會收到一則訊息,指出無法建立資料庫備份。
若要回復至備份,請關閉並重新命名原始檔案,讓備份複本可以使用原始版本的名稱。 指派原始版本的名稱給備份複本,然後在 Access 中開啟重新命名後的備份。
使用刪除查詢
若要建立刪除查詢,請按一下 [建立> 索引 鍵,在 [查詢 群組 中,按一下 查詢設計。 按兩下要刪除記錄的每一個資料表,然後按一下 [ 關閉。
資料表會顯示為查詢設計格線上方區段的視窗。 在欄位清單中,按兩下星號 (*) ,以將資料表中的所有欄位新增到設計格線線。
在刪除查詢中使用特定準則
重要: 使用準則僅會退回您想要刪除的記錄。 否則,刪除查詢會移除資料表中的每一個記錄。
按兩下要指定為刪除準則的欄位,在查詢設計工具的 [準則」 資料列輸入其中一個準則,然後清除每個準則欄位的[顯示檢查方塊。
您可能會想要使用此選項的範例:假設您想要移除客戶的所有擱置訂單。 若要只尋找這些記錄,您必須在查詢設計格線中新增客戶識別碼和訂單日期欄位,然後輸入客戶的識別碼,以及該客戶訂單變成不正確日期。
-
按一下 [設計視圖>[資料工作表視圖。
-
確認查詢會返回要刪除的記錄,然後按 CTRL+S 儲存查詢。
-
若要執行查詢,請在功能窗格中按兩下查詢。
使用更新查詢
附註: 您無法在 Access Web 應用程式中使用更新查詢選項。
本節說明如何使用更新查詢從資料表刪除個別欄位。 請記住,執行更新查詢以刪除資料時,會根據您指定的準則,將現有值變更為 Null 或零長度字串 () 之間沒有空格的雙引號。
-
按一下 [ 建立> 索引鍵,然後按一下 [ 查詢群組 中查詢 設計。
-
選取包含要刪除之資料的資料表 (如果資料表相關,請選取關聯性) 「一」端的資料表,按一下 [新增) ,然後按一下 [關閉。
資料表會顯示為查詢設計格線上方區段的視窗。 視窗會列出所選資料表中的所有欄位。
-
按兩下 * 的星號 (*) ,以將資料表中的所有欄位新增到設計格線線。 新增所有資料表欄位可讓刪除查詢移除資料 (資料) 整列記錄。
或者,您可以在設計工具的準則資料列輸入一或多個欄位的準則,然後清除每個準則欄位的顯示覆選框。 有關使用準則的資訊,請參閱選取查詢 資料表的範例準則 。
附註: 您可以使用準則只返回要變更的記錄。 否則,更新查詢會設定為 Null 查詢中每個欄位的每一個記錄。
-
在 [設計] 索引標籤的 [結果] 群組中,按一下 [檢視],再按一下 [資料工作表檢視]。
-
確認查詢會返回要設定為 Null 或零長度字串的記錄 (兩者之間沒有空格的雙引號 ("") 。
-
如果需要,請重複步驟 3 到 5,並變更欄位或準則,直到查詢只返回您想要刪除的資料,然後按 CTRL+S 儲存查詢。
-
若要執行查詢,請在功能窗格中按兩下查詢。
其他資訊
編輯關係
只有在您需要刪除「一」和「多」兩個關係上的資料時,才必須遵循這些步驟。
-
在 [資料庫工具] 索引標籤上的 [資料庫關聯圖] 群組中,按一下 [資料庫關聯圖]。
-
以滑鼠右鍵按一下 (刪除) 資料表的關聯,然後按一下快捷方式功能表上的 [編輯關聯。
-
在 [ 編輯關係 型表1> 對話方塊中,確定已選取 [ 強迫參考完整性 」 核取方塊。
-
選取串聯 刪除相關記錄 核取方塊。
附註: 在再次停用此屬性之前,刪除關聯「一」端的記錄將會刪除關聯「多」端的所有關聯記錄。
-
按一下 [確定,關閉 [關係 窗格 ,然後繼續下一組步驟。
刪除關聯
-
如果您尚未這麼做,請開啟關係 窗格 。
-
在 [資料庫工具] 索引標籤上的 [資料庫關聯圖] 群組中,按一下 [資料庫關聯圖]。
記下關系中涉及的欄位,以便刪除資料後還原關係。
-
以滑鼠右鍵按一下 (刪除) 資料表的關聯,然後按一下快捷方式功能表上的 [刪除。
附註: 若要還原關係,請遵循上述步驟開啟 「資料庫關係」窗格,然後從「一」資料表拖曳主鍵欄位,並將它拖放到「多」資料表的外鍵欄位。 [ 編輯關係」 對話方塊即會出現。 如果舊關係強制執行參考完整性,請選取 [強迫參考完整性,然後按一下 [建立。 否則,只要按一下 [建立。
選取查詢的範例準則
下表列出一些範例準則,當您想要確保只刪除要刪除的資料時,可在選取查詢中使用這些範例準則。 其中一些範例會使用萬用字元。
準則 |
影響 |
---|---|
> 234 |
傳回所有大於 234 的數字。 若要尋找所有小於 234 的數字,請使用 <234。 |
>= "Cajhen" |
傳回從 Cajhen 到字母表最後一個字母之間的所有記錄。 |
Between #2/2/2010# and #12/1/2010# |
會從 ANSI-89 (2010 年 2 月 2 日到 2010 年 12 月 1 日) 。 如果資料庫是使用 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()) |
使用 Date 和 DateAdd 函數 ,會從今天日期到今天日期起三個月之間,將所有記錄全部退回。 |
Is Null |
會傳回包含 Null (空白或未定義) 值的所有記錄。 |
Is Not Null |
會返回所有包含非 null (值的記錄) 。 |
"" |
會傳回包含零長度字串的所有記錄。 當您需要新增值至所需欄位,但您不知道實際值是什麼時,可以使用零長度字串。 例如,某個欄位可能需要輸入傳真號碼,但有些客戶可能沒有傳真機。 在這種情況下,您不用輸入數位,而是輸入一對沒有空格的雙引號, (") 。 |
疑難排解提示
我為何會看見這則錯誤訊息,以及要如何修正錯誤?
如果您使用多個資料表建立刪除查詢,且查詢的 Unique Records 屬性設為 No,Access會顯示錯誤訊息; 當您執行查詢時,無法 從指定的資料表中刪除。
若要修正這個問題,請將查詢的 [唯一記錄] 屬性設定為 [是]。
-
在 [設計檢視] 中開啟刪除查詢。
-
如果查詢屬性表沒有開啟,請按 F4 加以開啟。
-
按一下查詢設計工具以顯示查詢屬性 (而非欄位屬性)。
-
在查詢屬性表中,找出 [唯一記錄] 屬性,並且將它設定為 [是]。
防止停用模式封鎖查詢
根據預設,如果您開啟未選擇信任或不位於信任位置的桌面資料庫,Access 會阻止所有動作查詢執行。
如果您嘗試執行某個動作查詢,但好像什麼動作都沒有發生,請確認 Access 狀態列是否出現下列訊息:
[巨集指令或事件已經被停用模式封鎖。]
當您看到該訊息時,請執行下列步驟來啟用封鎖的內容:
-
在安全性 警告訊息 列上,按一下 [啟用內容,然後再次執行查詢。