Trong MS Access và các hệ thống DBMS khác, các truy vấn có thể làm được nhiều việc hơn là chỉ hiển thị dữ liệu. Cụ thể, truy vấn có thể thực hiện các hành động khác nhau trên dữ liệu trong database của bạn.
- Truy vấn hành động (Action Query) là các truy vấn thực hiện hành động trên dữ liệu, có thể thêm, thay đổi hoặc xóa bản ghi.
- Bạn có thể xem trước kết quả trong Access trước khi thực hiện truy vấn.
- Truy vấn hành động không thể được hoàn tác. Bạn nên cân nhắc việc sao lưu bảng mà bạn sẽ cập nhật bằng cách sử dụng truy vấn cập nhật (update query).
Các loại Truy vấn Hành động
Append Query
Append Query là truy vấn cho phép thêm mới dữ liệu (thêm mới bản ghi) vào cuối một bảng có sẵn. Bạn có thể sử dụng Append Query để truy xuất dữ liệu từ một hoặc nhiều bảng và thêm dữ liệu đó vào một bảng khác.
Ví dụ, tạo một bảng mới gọi là TempNhanvien và thêm dữ liệu từ bảng tblNhanvien. Đây sẽ là bảng tạm thời để demo, bao gồm các trường như sau:
Tạo bảng TempNhanvien bao gồm các trường như hìnhVào tab Create > nhóm Queries > Query Design để hiển thị hộp thoại Show Table:
Vào tab Create và chọn Query Design để xuất hiện Show TableTrong tab Tables, chọn bảng tblNhanvien bằng cách click đúp chuột vào và Close. Nhấp đúp chuột vào tên của các trường bạn muốn hiển thị.
Nhấp đúp chuột vào tên của các trường bạn muốn hiển thịChạy truy vấn để hiển thị dữ liệu.
Chạy Truy vấn được kết quả như bảngTiếp theo, quay lại tab Design và chọn Append.
Quay lại tab Design và tìm nút Append trên ribbonChọn bảng TempNhanvien trong hộp thoại Append hiện lên.
Chọn tên bảng từ danh sách thả xuống và bấm OKTrong phần lưới thiết kế ở phần dưới cùng của màn hình, bạn có thể thấy hàng Append To hiển thị ở tất cả các trường theo mặc định trừ Diachi1.
Hàng Append To hiển thị ở tất cả các trường theo mặc định trừ Diachi1Điều này là do Diachi1 không tồn tại trong bảng TempNhanvien. Vì vậy, ta cần chọn trường từ danh sách thả xuống.
Chọn trường Diachi không có sẵn ở danh sách thả xuốngTiếp theo, ta chạy truy vấn và bạn sẽ thấy thông báo xác nhận sau.

Nhấp vào Yes để xác nhận hành động của bạn. Bây giờ bạn mở bảng TempNhanvien sẽ thấy dữ liệu đã được thêm vào từ bảng tblNhanvien.
Dữ liệu từ bảng tblNhanvien đã được thêm vào TempNhanvienUpdate Query
Update Query là loại truy vấn hành động, sử dụng để thay đổi nội dung dữ liệu trên database cụ thể hơn dùng để cập nhật dữ liệu của trường nào đó trong bảng.
Update Query còn có thể kết hợp với các tiêu chí để chỉ định cụ thể những hàng nào sẽ được update
Hãy thử một ví dụ cụ thể trên cơ sở dữ liệu ta đã demo. Đi tới tab Create và click vào Query Design.
Vào tab Create và chọn Query Design để xuất hiện Show TableTrong tab Tables, chọn bảng tblNhanvien bằng cách click đúp chuột vào và Close.

Trên tab Design, nhóm Query Type, chọn Update và click đúp vào trường bạn muốn cập nhật giá trị.
Ví dụ cập nhật Ten của "Phuong" thành "Huong"Trong hàng Update ở phần lưới thiết kế dưới cùng của màn hình, nhập giá trị cập nhật vào Update To, nhập giá trị ban đầu vào Criteria và chạy truy vấn. Thông báo sau sẽ xuất hiện:
Thông báo xuất hiện sau khi khai báo các thông tin cần updateChọn Yes và đi đến Datasheet View và bạn sẽ thấy nhân viên có ID là 5 đã được update Ten ban đầu thành Huong.
Delete Query
Delete Query là một loại Action Query cũng làm thay đổi dữ liệu của các bảng. Cụ thể nó dùng để xoá dữ liệu, bản ghi từ bảng dữ liệu trong database thoả mãn những điều kiện nào đó.
Delete Query còn có thể kết hợp với các tiêu chí để chỉ định cụ thể những hàng nào sẽ được xóa
Hãy thử một ví dụ cụ thể trên cơ sở dữ liệu ta đã demo. Đi tới tab Create và click vào Query Design.

Chọn bảng tblNhanvien. Trên tab Design, nhóm Query Type, chọn Delete và click đúp vào NhanvienID.
Click đúp vào NhanvienID sau khi thao tác trên tab Design, nhóm Query Type, chọn DeleteTrong hàng Criteria ở phần lưới thiết kế dưới cùng của màn hình điền giá trị 9, nghĩa là ta sẽ xóa bản ghi liên quan đến nhân viên có ID là 9.
Xóa bản ghi liên quan đến nhân viên có ID là 9Chạy truy vấn, thông báo sau sẽ xuất hiện:
Thông báo xuất hiện sau khi khai báo thông tin cần xóaChọn Yes và đi đến Datasheet View và bạn sẽ thấy bản ghi dữ liệu về nhân viên có ID là 9 đã bị xóa.

Make Table Query
Make Table Query là một loại Action Query sử dụng để tạo một bảng mới với dữ liệu lấy từ Table hay Query khác.
Đầu tiên, bạn cũng đi tới tab Create và click vào Query Design.

Chọn các bản ghi bạn muốn có ở bảng mớiTrên tab Design, nhóm Query Type, chọn Make Table, bạn sẽ thấy hộp thoại sau xuất hiện. Nhập tên của bảng mới muốn tạo và bấm OK.
Nhập tên của bảng mới muốn tạo và bấm OKChạy truy vấn, thông báo sau sẽ xuất hiện:
Thông báo xuất hiện sau khi bạn chọn Run truy vấnChọn Yes và bạn sẽ thấy một bảng mới được tạo xuất hiện trong khung điều hướng.
Bảng mới được tạo bao gồm các trường đã chọn ở trênBài trước: Thiết lập Tiêu chí truy vấn (Query Criteria) trong Access 2016
Bài tiếp: Truy vấn Tham số (Parameter Query) trong Access 2016