Nếu bạn đã từng ngồi nhìn một database trong Access 2021 với vài chục nghìn dòng dữ liệu và tự hỏi: “Làm sao lọc ra đúng thứ mình cần bây giờ?”, thì xin chúc mừng – bạn đã đến đúng chỗ rồi đấy.
Access không chỉ để nhập dữ liệu. Phần thú vị nhất của nó nằm ở Query. Và khi nói đến Query, không thể bỏ qua hai thứ cực kỳ quan trọng: Join và lọc dữ liệu.
Nghe có vẻ kỹ thuật. Nhưng thật ra, khi hiểu nguyên lý rồi, bạn sẽ thấy nó hợp lý đến mức… không làm thì phí.
Query Join là gì mà nghe “nguy hiểm” vậy?
Join đơn giản là cách nối dữ liệu từ nhiều bảng lại với nhau.
Ví dụ bạn có hai bảng:
-
KhachHang
-
DonHang
Bảng KhachHang có MaKhachHang.
Bảng DonHang cũng có MaKhachHang.
Nếu bạn muốn xem danh sách đơn hàng kèm theo tên khách hàng, bạn cần Join hai bảng này.
Nếu không Join, Access chỉ xem mỗi bảng là một “thế giới riêng”. Và bạn thì phải ghép thông tin bằng tay. Rất mệt.
Join giúp các bảng nói chuyện với nhau. Thế thôi.

Các loại Join trong Access 2021
Khi bạn kéo hai bảng vào Query Design, Access sẽ tự động tạo đường nối nếu đã có Relationship trước đó. Đường này chính là Join.
Nhấp đúp vào đường nối, bạn sẽ thấy 3 lựa chọn:
-
Chỉ hiển thị bản ghi khớp nhau ở cả hai bảng (Inner Join).
-
Hiển thị tất cả bản ghi từ bảng A và bản ghi khớp từ bảng B (Left Join).
-
Ngược lại với số 2 (Right Join).
Inner Join là loại phổ biến nhất. Nó chỉ lấy những dữ liệu “có liên quan”.
Ví dụ: chỉ hiển thị đơn hàng có khách hàng hợp lệ.
Left Join thì khác. Nó có thể hiển thị cả khách hàng chưa có đơn hàng. Rất hữu ích khi bạn muốn tìm ai chưa mua gì.
Chỉ cần thay đổi kiểu Join một chút, kết quả khác hẳn. Thú vị thật.
Cách tạo Query Join trong Access 2021
Giờ vào phần thực hành nhé.
-
Vào tab Create
-
Chọn Query Design
-
Thêm các bảng cần Join
-
Nếu chưa có đường nối, kéo trường liên kết từ bảng này sang bảng kia
Sau đó chọn các trường bạn muốn hiển thị bằng cách nhấp đúp vào tên trường.
Nhấn Run (dấu chấm than màu đỏ).
Kết quả hiện ra ngay.
Không cần viết SQL nếu bạn không thích. Access cho phép làm trực quan.

Lọc dữ liệu – Phần không thể thiếu
Join giúp bạn kết hợp dữ liệu. Nhưng lọc (Filter) mới là thứ giúp bạn tìm đúng thông tin cần thiết.
Ví dụ bạn chỉ muốn:
-
Đơn hàng trong tháng 1
-
Khách hàng ở Hà Nội
-
Đơn hàng trên 5 triệu
Trong Query Design, bạn chỉ cần nhập điều kiện vào dòng Criteria bên dưới trường tương ứng.
Ví dụ:
-
Tháng 1:
Month([NgayDat]) = 1 -
Hà Nội:
"Hà Nội" -
Trên 5 triệu:
>5000000
Nhấn Run. Xong.
Dữ liệu thu hẹp lại ngay.
Kết hợp Join và lọc – Mới thực sự mạnh
Giả sử bạn muốn:
“Hiển thị tất cả khách hàng ở TP.HCM chưa từng đặt đơn hàng.”
Nghe có vẻ phức tạp nhỉ?
Cách làm:
-
Dùng Left Join giữa KhachHang và DonHang
-
Lọc điều kiện DonHang.MaKhachHang Is Null
-
Và thêm điều kiện ThànhPhố = “TP.HCM”
Chạy query.
Bạn sẽ thấy danh sách khách hàng chưa mua gì.
Đây là lúc bạn nhận ra sức mạnh của Query Join kết hợp lọc. Nó không chỉ hiển thị dữ liệu, mà còn giúp bạn phân tích.

Một vài mẹo nhỏ khi làm Query
-
Đặt alias cho trường để dễ đọc hơn.
-
Sử dụng biểu thức trong dòng Criteria.
-
Kiểm tra kiểu dữ liệu trước khi lọc.
-
Lưu Query để dùng lại sau này.
Ngoài ra, nếu bạn quen SQL, có thể chuyển sang SQL View để chỉnh sửa trực tiếp câu lệnh.
Ví dụ:
FROM KhachHang
INNER JOIN DonHang
ON KhachHang.MaKhachHang = DonHang.MaKhachHang
WHERE DonHang.TongTien > 5000000;
Nhìn có vẻ “ngầu” hơn một chút đúng không?
Những lỗi thường gặp
-
Join sai trường
-
Kiểu dữ liệu không khớp
-
Lọc sai cú pháp
-
Nhầm lẫn giữa AND và OR
Ví dụ, nếu bạn dùng AND khi đáng lẽ phải dùng OR, kết quả có thể không trả về bản ghi nào.
Làm Query giống như giải toán vậy. Sai một chi tiết nhỏ là kết quả khác ngay.
Nhưng đừng lo. Thử vài lần là quen.
Khi nào nên dùng Query thay vì Filter trực tiếp?
Access cho phép lọc trực tiếp trong Datasheet View. Nhưng cách đó chỉ tạm thời.
Nếu bạn cần:
-
Lọc thường xuyên
-
Kết hợp nhiều bảng
-
Tạo báo cáo dựa trên điều kiện cụ thể
Thì Query là lựa chọn đúng.
Nó giúp bạn tái sử dụng, chỉnh sửa và mở rộng dễ dàng.

