Khi bạn muốn nhanh chóng xóa nhiều dữ liệu hoặc thường xuyên xóa một tập dữ liệu trong cơ sở dữ liệu Access trên máy tính, truy vấn xóa hoặc cập nhật có thể hữu ích vì truy vấn này giúp bạn có thể chỉ định tiêu chí để tìm và xóa dữ liệu nhanh chóng. Sử dụng truy vấn cũng có thể tiết kiệm thời gian vì bạn có thể sử dụng lại truy vấn đã lưu.
Lưu ý
Trước khi bạn xóa bất cứ dữ liệu nào hoặc chạy truy vấn xóa, hãy đảm bảo rằng bạn có bản sao lưu cơ sở dữ liệu Access trên máy tính.
Nếu bạn chỉ muốn xóa một vài bản ghi, bạn không cần truy vấn. Chỉ cần mở bảng trong dạng xem Biểu dữ liệu, chọn các trường (cột) hoặc bản ghi (hàng) bạn muốn xóa, rồi nhấn DELETE.
Quan trọng
Thông tin trong bài viết này chỉ nhằm áp dụng cho các cơ sở dữ liệu trên máy tính. Bạn không thể sử dụng truy vấn xóa hoặc cập nhật trong ứng dụng web Access.
Trong bài viết này
Chọn kiểu truy vấn
Bạn có thể sử dụng truy vấn cập nhật hoặc truy vấn xóa để xóa dữ liệu khỏi cơ sở dữ liệu của mình. Chọn một truy vấn dựa trên các chi tiết trong bảng sau đây:
| Loại truy vấn | Lúc sử dụng | Kết quả |
|---|---|---|
| Sử dụng truy vấn xóa | Để loại bỏ toàn bộ bản ghi (hàng) khỏi một bảng hoặc khỏi hai bảng liên quan cùng lúc. Lưu ý: Nếu các bản ghi nằm ở phía "một" trong mối quan hệ một-nhiều, bạn có thể cần thay đổi mối quan hệ trước khi chạy truy vấn xóa. Hãy xem phần về việc xóa dữ liệu khỏi các bảng liên quan. |
Truy vấn xóa sẽ loại bỏ tất cả dữ liệu trong mỗi trường, bao gồm giá trị chính khiến bản ghi trở thành duy nhất |
| Sử dụng truy vấn cập nhật | Để xóa các giá trị trường riêng lẻ khỏi một bảng. | Làm cho việc xóa giá trị dễ dàng hơn bằng cách cập nhật các giá trị hiện có thành giá trị null (nghĩa là không có dữ liệu) hoặc chuỗi có độ dài bằng không (một cặp dấu ngoặc kép không có dấu cách giữa chúng). |
Những điều cần xác minh trước khi bạn sử dụng một truy vấn để xóa bất kỳ dữ liệu nào
Hãy đảm bảo rằng tệp không phải là tệp chỉ đọc:
- Bấm chuột phải vào Bắt đầu và bấm Mở Windows Explorer.
- Bấm chuột phải vào tệp cơ sở dữ liệu rồi bấm Thuộc tính.
- Xem liệu thuộc tính Chỉ đọc đã được chọn hay chưa.
Xác minh rằng bạn có quyền cần thiết để xóa bản ghi khỏi cơ sở dữ liệu. Nếu bạn không chắc chắn, hãy liên hệ với người quản trị hệ thống hoặc người thiết kế cơ sở dữ liệu bên bạn.
Đảm bảo bạn đã bật nội dung trong cơ sở dữ liệu. Theo mặc định, Access sẽ chặn tất cả các truy vấn hành động (truy vấn xóa, cập nhật và tạo bảng) trừ khi bạn trước tiên tin cậy cơ sở dữ liệu đó. Để biết thông tin về việc tin cậy một cơ sở dữ liệu, hãy xem mục Ngăn không cho Chế độ Tắt chặn truy vấn.
Yêu cầu những người dùng khác của cơ sở dữ liệu đóng tất cả các bảng, biểu mẫu, truy vấn và báo cáo có sử dụng dữ liệu bạn muốn xóa. Điều này giúp tránh các vi phạm khóa.
Trước khi bạn sửa hoặc xóa bản ghi, tốt nhất là tạo bản sao lưu cơ sở dữ liệu trong trường hợp bạn muốn đảo ngược những thay đổi của mình.
Mẹo
Nếu có một số lượng lớn người dùng kết nối với cơ sở dữ liệu, bạn có thể cần đóng cơ sở dữ liệu, rồi mở lại cơ sở dữ liệu trong chế độ Dành riêng .
Cách mở cơ sở dữ liệu trong chế độ Dành riêng
- Bấm tab Tệp>Mở.
- Duyệt đến và trỏ tới để chọn cơ sở dữ liệu, bấm vào mũi tên bên cạnh nút Mở , rồi bấm Mở dành riêng.
Sao lưu cơ sở dữ liệu
- Bấm vào tab Tệp , trỏ đến Lưu dưới Dạng.
- Bấm Lưu Cơ sở dữ liệu Dưới dạng, bấm Sao lưu Cơ sở dữ liệu. Access đóng tệp gốc, tạo một bản sao lưu rồi sau đó mở lại tệp gốc.
- Bấm Lưu dưới Dạng , hãy xác định tên và vị trí cho bản sao lưu, rồi bấm Lưu.
Lưu ý
Nếu bạn đang sử dụng cơ sở dữ liệu chỉ đọc hoặc cơ sở dữ liệu được tạo trong phiên bản Access trước thì bạn có thể nhận được thông báo rằng không tạo được bản sao lưu của cơ sở dữ liệu.
Để trở lại tệp sao lưu, hãy đóng và đổi tên tệp gốc để bản sao lưu có thể dùng tên của bản gốc. Gán tên của bản gốc cho bản sao lưu, rồi mở bản sao lưu đã được đổi tên trong Access.
Dùng truy vấn xóa
Để tạo truy vấn xóa, bấm vào tab Tạo , trong nhóm Truy vấn , bấm Thiết kế Truy vấn. Bấm đúp vào từng bảng bạn muốn xóa bản ghi, rồi bấm Đóng.
Bảng sẽ xuất hiện dưới dạng cửa sổ ở mục trên của lưới thiết kế truy vấn. Từ danh sách các trường, hãy bấm đúp vào dấu sao (*) để thêm tất cả các trường trong bảng vào lưới thiết kế.
Sử dụng một tiêu chí cụ thể trong truy vấn xóa
Quan trọng
Sử dụng tiêu chí để chỉ trả về những bản ghi bạn muốn xóa. Nếu không, truy vấn xóa sẽ loại bỏ mọi bản ghi trong bảng.
Bấm đúp vào trường bạn muốn xác định làm tiêu chí xóa, nhập một tiêu chí vào hàng Tiêu chí của trình thiết kế truy vấn, rồi bỏ chọn hộp kiểm Hiện cho từng trường tiêu chí.
Ví dụ về việc khi nào bạn có thể muốn sử dụng tùy chọn này: Giả sử bạn muốn loại bỏ tất cả các đơn hàng đang chờ xử lý cho một khách hàng. Để chỉ tìm những bản ghi đó, bạn sẽ thêm trường ID Khách hàng và Ngày Đặt hàng vào lưới thiết kế truy vấn, sau đó nhập số ID của khách hàng và ngày mà đơn hàng của khách hàng đó trở nên không hợp lệ.
- Trên tab Thiết kế , hãy bấm Dạng xem Biểu>dữ liệu.
- Xác minh truy vấn trả về các bản ghi bạn muốn xóa, rồi nhấn CTRL+S để lưu truy vấn.
- Để chạy truy vấn, hãy bấm đúp vào truy vấn trong Ngăn Dẫn hướng.
Dùng truy vấn cập nhật
Lưu ý
Bạn không thể sử dụng tùy chọn truy vấn cập nhật trong ứng dụng web Access.
Mục này giải thích cách sử dụng truy vấn cập nhật để xóa các trường riêng lẻ khỏi bảng. Hãy nhớ rằng việc chạy truy vấn cập nhật để xóa dữ liệu sẽ thay đổi các giá trị hiện có thành NULL hoặc chuỗi có độ dài bằng không (một cặp dấu ngoặc kép không có dấu cách ở giữa), tùy thuộc vào tiêu chí bạn xác định.
Bấm tab Tạo và trong nhóm Truy vấn , bấm Thiết kế Truy vấn.
Chọn bảng có dữ liệu bạn muốn xóa (nếu bảng có liên quan, hãy chọn bảng ở phía "một" của mối quan hệ), bấm Thêm, rồi bấm Đóng.
Bảng sẽ xuất hiện dưới dạng cửa sổ ở mục trên của lưới thiết kế truy vấn. Cửa sổ này sẽ liệt kê mọi trường trong bảng đã chọn.Bấm đúp vào dấu sao (*) để thêm tất cả các trường trong bảng vào lưới thiết kế. Việc thêm tất cả các trường bảng cho phép truy vấn xóa bỏ để loại bỏ toàn bộ bản ghi (hàng) khỏi bảng.
Ngoài ra, bạn có thể nhập tiêu chí cho một hoặc nhiều trường trong hàng Tiêu chí của trình thiết kế, rồi bỏ chọn hộp kiểm Hiện cho từng trường tiêu chí. Để biết thêm thông tin về cách sử dụng tiêu chí, hãy xem bảng Tiêu chí mẫu cho truy vấn chọn .Lưu ý
Bạn sử dụng tiêu chí để chỉ trả về những bản ghi mà bạn muốn thay đổi. Nếu không, truy vấn cập nhật sẽ đặt là NULL mỗi bản ghi trong từng trường trong truy vấn của bạn.
Trên tab Thiết kế, trong nhóm Kết quả, bấm Dạng xem và sau đó bấm Dạng xem Biểu dữ liệu.
Xác minh xem truy vấn có trả về các bản ghi bạn muốn đặt thành NULL hoặc chuỗi có độ dài bằng không (một cặp dấu ngoặc kép không có dấu cách giữa chúng ("").
Nếu cần, lặp lại các bước 3 đến 5 và thay đổi các trường hoặc tiêu chí cho đến khi truy vấn chỉ trả về dữ liệu bạn muốn xóa, rồi nhấn CTRL+S để lưu truy vấn.
Để chạy truy vấn, hãy bấm đúp vào truy vấn trong Ngăn Dẫn hướng.
Thông tin Bổ sung
Xóa dữ liệu khỏi các bảng liên quan
Nếu bạn muốn xóa dữ liệu khỏi một vài bảng liên quan, bạn phải bật các tùy chọn Tính toàn vẹn Tham chiếu và Xếp tầng Xóa các Bản ghi Liên quan cho từng mối quan hệ. Điều này cho phép truy vấn xóa dữ liệu khỏi các bảng trên phía "một" và "nhiều" của mối quan hệ. Việc chuẩn bị xóa dữ liệu liên quan cần có xác minh những điều sau:
- Xác định bản ghi nào nằm ở bên "một" của mối quan hệ và bản ghi nào nằm ở bên "nhiều".
- Nếu bạn cần xóa các bản ghi ở bên "một" của mối quan hệ và các bản ghi có liên quan ở bên "nhiều", bạn sẽ bật một bộ quy tắc có tên Tính toàn vẹn tham chiếu và bật xóa xếp tầng. Các bước trong mục này giải thích tính toàn vẹn tham chiếu và cách thực hiện cả hai tác vụ.
- Nếu bạn chỉ cần xóa bản ghi ở phía "một" của mối quan hệ, trước tiên bạn hãy xóa mối quan hệ đó, rồi sau đó xóa dữ liệu.
Nếu bạn chỉ cần loại bỏ dữ liệu ở phía "nhiều" của mối quan hệ, bạn có thể tạo và chạy truy vấn xóa mà không cần phải thay đổi mối quan hệ.
Để tìm hiểu bản ghi nào nằm trên phía "một" và "nhiều" của mối quan hệ, trên tab Công cụ Cơ sở dữ liệu , trong nhóm Mối quan hệ , bấm vào Mối quan hệ. Tab Mối quan hệ hiển thị các bảng trong cơ sở dữ liệu của bạn và các mối quan hệ. Mỗi mối quan hệ được mô tả dưới dạng một đường kết nối các bảng giữa các trường.
Hình sau cho thấy mối quan hệ điển hình. Hầu hết, nếu không muốn nói là tất cả, mối quan hệ trong cơ sở dữ liệu đều có bên "một" và bên "nhiều". Sơ đồ quan hệ biểu thị phía "một" với số một (1) và phía "nhiều" với biểu tượng vô cực (∞).
Khi bạn xóa các bản ghi ở bên "một" của mối quan hệ, bạn cũng xóa tất cả các bản ghi có liên quan ở bên "nhiều" của mối quan hệ. Tuy nhiên, khi bạn xóa bản ghi ở bên "nhiều" của mối quan hệ, bạn thường không xóa bản ghi ở bên "một".
Ngoài ra, Access sẽ tự động thực thi một bộ quy tắc được gọi là tính toàn vẹn tham chiếu. Những quy tắc này đảm bảo rằng các khóa ngoại trong cơ sở dữ liệu chứa các giá trị chính xác. Khóa ngoại là cột có giá trị khớp với giá trị trong cột khóa chính của một bảng khác.
Chỉnh sửa mối quan hệ
Chỉ làm theo các bước này khi bạn cần xóa dữ liệu ở phía "một" và "nhiều" của mối quan hệ.
Trên tab Công cụ Cơ sở dữ liệu, trong nhóm Mối quan hệ, bấm Mối quan hệ.
Bấm chuột phải vào mối quan hệ (đường) kết nối các bảng liên quan đến thao tác xóa, rồi bấm Sửa Quan hệ trên menu lối tắt.
Trong hộp thoại Sửa Quan hệ , hãy đảm bảo đã chọn hộp kiểm Bắt buộc Tính toàn vẹn Tham chiếu .
Chọn hộp kiểm Xóa xếp tầng các bản ghi liên quan .
Lưu ý
Cho đến khi bạn vô hiệu hóa thuộc tính này một lần nữa, việc xóa một bản ghi ở bên "một" của mối quan hệ sẽ xóa tất cả các bản ghi liên quan ở bên "nhiều" của mối quan hệ.
Bấm OK, đóng ngăn Mối quan hệ , rồi chuyển tới các bước tiếp theo.
Xóa mối quan hệ
- Nếu bạn chưa làm như vậy, hãy mở ngăn Mối quan hệ .
- Trên tab Công cụ Cơ sở dữ liệu, trong nhóm Mối quan hệ, bấm Mối quan hệ.
Hãy ghi lại các trường liên quan trong mối quan hệ để bạn có thể khôi phục mối quan hệ sau khi xóa dữ liệu của mình. - Bấm chuột phải vào mối quan hệ (đường) kết nối các bảng liên quan đến thao tác xóa, rồi bấm Xóa trên menu lối tắt.
Lưu ý
Để khôi phục mối quan hệ, hãy làm theo các bước trước đó để mở ngăn Mối quan hệ , sau đó kéo trường khóa chính từ bảng "một" và thả vào trường khóa ngoại của bảng "nhiều". Hộp thoại Chỉnh sửa mối quan hệ xuất hiện. Nếu mối quan hệ cũ đã bắt buộc tính toàn vẹn tham chiếu, hãy chọn Bắt buộc Tính toàn vẹn Tham chiếu, rồi bấm Tạo. Nếu không, chỉ cần bấm vào Tạo.
Tiêu chí mẫu cho truy vấn chọn
Bảng sau đây liệt kê một số tiêu chí mẫu mà bạn có thể sử dụng trong truy vấn chọn khi bạn muốn đảm bảo chỉ xóa dữ liệu mình muốn xóa. Một số ví dụ trong số này sử dụng ký tự đại diện.
| Tiêu chí | Tác động |
|---|---|
| > 234 | Trả về tất cả số lớn hơn 234. Để tìm thấy tất cả các số nhỏ hơn 234, dùng 234 < . |
| >= "Cajhen" | Trả về tất cả bản ghi từ Cajhen tới cuối bảng chữ cái |
| Giữa #02/02/2010# Và #01/12/2010# | Trả về các ngày từ 02/02/2010 đến 01/12/2010 (ANSI-89). Nếu cơ sở dữ liệu của bạn sử dụng bộ ký tự đại diện ANSI-92, hãy sử dụng dấu nháy đơn (') thay cho dấu thăng (#). Ví dụ: Between '2/2/2010' And '12/1/2010'. |
| Not "Nước Đức" | Tìm tất cả các bản ghi mà nội dung chính xác của trường không phải là "Nước Đức." Tiêu chí sẽ trả về các bản ghi có chứa các ký tự ngoài từ "Nước Đức" như "Nước Đức (châu âu)" hay "Châu Âu (Nước Đức)". |
| Not "T*" | Tìm tất cả các bản ghi trừ những bản ghi bắt đầu bằng chữ T. Nếu cơ sở dữ liệu của bạn sử dụng bộ ký tự đại diện ANSI-92, hãy sử dụng dấu phần trăm (%) thay vì dấu sao ().* |
| Không phải "*t" | Tìm tất cả các bản ghi không kết thúc bằng chữ t. Nếu cơ sở dữ liệu của bạn sử dụng bộ ký tự đại diện ANSI-92, hãy sử dụng dấu phần trăm (%) thay vì dấu sao (*). |
| In(Canada,UK) | Trong danh sách, tìm tất cả các bản ghi có chứa Canada hoặc Vương quốc Anh. |
| Like "[A-D]*" | Trong trường Văn bản, tìm tất cả các bản ghi bắt đầu từ chữ A tới chữ D. Nếu cơ sở dữ liệu của bạn sử dụng bộ ký tự đại diện ANSI-92, hãy sử dụng dấu phần trăm (%) thay vì dấu sao (*). |
| Như "*ar*" | Tìm tất cả các bản ghi bao gồm chuỗi chữ "ar". Nếu cơ sở dữ liệu của bạn sử dụng bộ ký tự đại diện ANSI-92, hãy sử dụng dấu phần trăm (%) thay vì dấu sao (*). |
| Like "Maison Dewe?" | Tìm tất cả các bản ghi bắt đầu bằng từ "Maison" và chứa chuỗi thứ hai có 5 chữ cái trong đó 4 chữ cái đầu tiên là "Dewe" chữ cái cuối cùng không xác định. Nếu cơ sở dữ liệu của bạn dùng bộ ký tự đại diện ANSI-92, hãy dùng dấu gạch dưới (_) thay vì dấu hỏi (?). |
| #2/2/2010# | Tìm tất cả các bản ghi cho ngày 2 tháng 2, 2010. Nếu cơ sở dữ liệu của bạn dùng bộ ký tự đại diện ANSI-92, hãy đặt ngày trong dấu nháy đơn thay vì dấu thăng ('2/2/2010'). |
| < Date() - 30 | Dùng hàm Date để trả về tất cả các ngày tháng nhiều hơn 30 ngày về trước. |
| Date() | Dùng hàm Date để trả về tất cả các bản ghi chứa ngày hôm nay. |
| Between Date() And DateAdd("M", 3, Date()) | Dùng hàm Date và DateAdd để trả về tất cả các bản ghi giữa ngày hôm nay và ba tháng kể từ ngày hôm nay. |
| Is Null | Trả về tất cả các bản ghi có chứa một giá trị null (trống hoặc chưa được xác định). |
| Is Not Null | Trả về tất cả bản ghi chứa bất kỳ giá trị nào (không phải là null). |
| "" | Trả về tất cả các bản ghi có chứa chuỗi độ dài bằng 0. Bạn hãy dùng chuỗi độ dài bằng không khi cần thêm một giá trị vào trường bắt buộc nhưng bạn không biết giá trị thực sự là bao nhiêu. Ví dụ: Một trường có thể yêu cầu số fax nhưng một số khách hàng của bạn có thể không có máy fax. Trong trường hợp đó, thay vì nhập số, bạn hãy nhập một cặp dấu ngoặc kép mà không có dấu cách ở giữa (""). |
Mẹo khắc phục sự cố
Tại sao tôi lại nhìn thấy thông báo lỗi này và tôi phải làm thế nào để khắc phục?
Nếu bạn dựng một truy vấn xóa bằng nhiều bảng và thuộc tính Bản ghi Duy nhất của truy vấn được đặt thành Không, Access sẽ hiển thị thông báo lỗi; Không thể xóa khỏi các bảng được chỉ định khi bạn chạy truy vấn.
Để khắc phục lỗi này, đặt thuộc tính Bản ghi Duy nhất của truy vấn thành Có.
- Mở truy vấn xóa trong dạng xem Thiết kế.
- Nếu trang tính thuộc tính truy vấn không mở, nhấn F4 để mở.
- Hãy bấm vào trình thiết kế truy vấn để hiện thuộc tính truy vấn (chứ không phải thuộc tính trường).
- Trong trang thuộc tính truy vấn, hãy tìm thuộc tính Bản ghi Duy nhất và đặt nó là Có.
Ngăn không cho Chế độ Tắt chặn truy vấn
Theo mặc định, nếu bạn mở cơ sở dữ liệu trên máy tính mà bạn không chọn tin cậy hoặc cơ sở dữ liệu không nằm trong vị trí tin cậy, Access sẽ chặn không cho chạy tất cả các truy vấn hành động.
Nếu bạn tìm cách chạy truy vấn hành động và dường như không có vấn đề gì xảy ra, hãy kiểm tra thanh trạng thái của Access để xem thông báo sau đây:
Chế độ Tắt đã chặn hành động hoặc sự kiện này.
Khi bạn nhìn thấy thông báo đó, hãy thực hiện bước sau để cho phép nội dung bị chặn:
- Trên Thanh Thông báo Cảnh báo Bảo mật , hãy bấm Cho phép Nội dung và chạy lại truy vấn của bạn.