Đôi khi, bạn có thể muốn so sánh hai bảng trong một Access và xác định các bản ghi ở một trong các bảng không có bản ghi tương ứng trong bảng kia. Cách dễ nhất để xác định các bản ghi này là sử dụng Trình hướng dẫn Truy vấn Tìm Không khớp. Sau khi trình hướng dẫn xây dựng truy vấn, bạn có thể sửa đổi thiết kế truy vấn để thêm hay loại bỏ các trường hoặc để thêm liên kết giữa hai bảng (để biểu thị những trường có giá trị khớp). Bạn cũng có thể tạo truy vấn riêng để tìm bản ghi không khớp mà không cần sử dụng trình hướng dẫn.
Bài viết này sẽ hướng dẫn bạn cách bắt đầu và chạy Trình hướng dẫn Truy vấn Tìm Không khớp, cách sửa đổi đầu ra trình hướng dẫn và cách tạo truy vấn riêng để tìm bản ghi không khớp.
Trong bài viết này
Khi nào tôi nên tìm kiếm bản ghi không khớp?
Sau đây là hai trường hợp thường gặp, trong đó bạn có thể muốn so sánh hai bảng và tìm các bản ghi không khớp. Tùy theo trường hợp, việc tìm bản ghi không khớp có thể là bước đầu tiên trong các bước mà bạn muốn thực hiện. Bài viết này chỉ đề cập đến cách tìm bản ghi không khớp.
-
Bạn sử dụng một bảng để lưu trữ dữ liệu về một nội dung (như sản phẩm), còn bảng kia để lưu trữ dữ liệu về hành động (như đơn hàng) liên quan đến nội dung đó.
Ví dụ: trong mẫu cơ sở dữ liệu Northwind, dữ liệu về sản phẩm được lưu trữ trong bảng Sản phẩm và dữ liệu về sản phẩm đi kèm trong mỗi đơn hàng sẽ được lưu trữ trong bảng Chi tiết Đơn hàng. Vì không có dữ liệu nào về đơn hàng trong bảng Sản phẩm (theo chủ đích) nên không thể xác định sản phẩm nào chưa bao giờ được bán bằng cách chỉ nhìn vào bảng Sản phẩm. Bạn cũng không xác định được thông tin này bằng cách chỉ nhìn bảng Chi tiết Đơn hàng vì bảng Chi tiết Đơn hàng chỉ bao gồm dữ liệu về sản phẩm đã bán. Bạn phải so sánh hai bảng để xác định sản phẩm nào chưa bao giờ được bán.
Nếu bạn muốn xem lại danh sách nội dung từ bảng đầu tiên mà không có hành động tương ứng trong bảng thứ hai, bạn có thể sử dụng Truy vấn Tìm Không khớp.
-
Bạn có hai bảng thông tin chồng chéo, dư thừa hoặc xung đột và bạn muốn kết hợp chúng thành một bảng.
Ví dụ, giả sử bạn có bảng tên là Khách hàng và bảng khác tên là Khách mua. Các bảng này gần như giống nhau nhưng một bảng hoặc cả hai bảng chứa một số bản ghi mà bảng kia không có. Để kết hợp các bảng này, trước tiên bạn phải xác định bản ghi nào chỉ có ở một trong hai bảng.
Nếu tình huống này xảy ra với bạn, các phương pháp được mô tả trong bài viết này có thể giúp ích nhưng bạn có thể sẽ cần thực hiện thêm một vài bước khác. Bạn có thể chạy Trình hướng dẫn Truy vấn Tìm Không khớp để xác định các bản ghi không khớp, tuy nhiên, nếu bạn muốn truy xuất bộ bản ghi kết hợp, bạn nên dùng kết quả để tạo truy vấn hợp. Nếu bạn thoải mái với việc viết các câu lệnh Ngôn ngữ Truy vấn Có cấu trúc (SQL), bạn thậm chí có thể muốn bỏ Trình hướng dẫn Truy vấn Tìm Không khớp và tự viết tay truy vấn hợp.
Bạn có thể thường giải quyết vấn đề thông tin chồng chéo, dư thừa hoặc xung đột bằng cách tìm dữ liệu trùng lặp trong hai hoặc nhiều bảng.
Để biết thêm thông tin về truy vấn hợp hoặc về việc tìm, ẩn hay loại bỏ dữ liệu trùng lặp, hãy bấm vào liên kết trong mục Xem Thêm.
Lưu ý: Các ví dụ trong bài viết này dùng cơ sở dữ liệu đã được tạo bằng mẫu cơ sở dữ liệu Northwind.
Hãy chỉ cho tôi cách thiết lập Northwind
-
Trên tab Tệp, hãy bấm vào Mới.
-
Tùy theo phiên bản Access của mình, bạn có thể tìm kiếm Northwind trong hộp Tìm kiếm hoặc trong ngăn bên trái, bên dưới Danh mục Mẫu, bấm vào Mẫu Cục bộ.
-
Bên dưới Mẫu Cục bộ, bấm vào Mẫu Northwind 2007, rồi bấm Tạo.
-
Làm theo hướng dẫn trên trang Northwind Traders (trên tab đối tượng của Màn hình Khởi động) để mở cơ sở dữ liệu, rồi đóng cửa sổ Hộp thoại Đăng nhập.
Dùng Trình hướng dẫn Truy vấn Tìm Không khớp để so sánh hai bảng
-
Trên tab Tạo, trong nhóm Truy vấn, hãy bấm vào Trình hướng dẫn Truy vấn.
-
Trong hộp thoại Truy vấn Mới, hãy bấm đúp vào Trình hướng dẫn Truy vấn Tìm Không khớp.
-
Trên trang thứ nhất của trình hướng dẫn, hãy chọn bảng có các bản ghi không khớp, rồi bấm Tiếp. Ví dụ, nếu bạn muốn xem danh sách các sản phẩm Northwind chưa bao giờ được bán, hãy chọn bảng Sản phẩm.
-
Trên trang thứ hai, hãy chọn bảng có liên quan, rồi bấm Tiếp. Để làm theo ví dụ này, hãy chọn bảng Chi tiết Đơn hàng.
-
Trên trang thứ ba, hãy chọn các trường liên quan đến các bảng này, bấm < = >, rồi bấm Tiếp. Bạn chỉ có thể chọn một trường từ mỗi bảng. Để làm theo ví dụ, hãy chọn ID từ bảng Sản phẩm và ID Sản phẩm từ bảng Chi tiết Đơn hàng. Xác nhận rằng đã khớp chính xác các trường bằng cách xem lại văn bản trong hộp Trường khớp.
Hãy lưu ý rằng các trường ID và ID Sản phẩm có thể đã được chọn do các quan hệ hiện có được dựng sẵn trong mẫu.
-
Trên trang thứ tư, hãy bấm đúp vào các trường bạn muốn xem từ bảng thứ nhất, rồi bấm Tiếp. Để làm theo ví dụ, hãy chọn trường ID và Tên Sản phẩm.
-
Trên trang thứ năm, bạn có thể chọn để xem kết quả hoặc sửa đổi thiết kế truy vấn. Trong ví dụ này, hãy bấm Xem kết quả. Chấp nhận tên gợi ý cho truy vấn, rồi bấm Kết thúc.
Bạn có thể muốn sửa đổi thiết kế truy vấn để thêm các tiêu chí khác, thay đổi thứ tự sắp xếp hoặc thêm hay loại bỏ các trường. Để biết thông tin về cách sửa đổi truy vấn Tìm Không khớp, hãy đọc mục sau đây; hoặc để biết thêm thông tin chung về việc tạo và sửa đổi truy vấn, hãy xem liên kết trong mục Xem Thêm.
Tạo và sửa đổi Truy vấn Tìm Không khớp để so sánh nhiều trường
-
Trên tab Tạo, trong nhóm Truy vấn, hãy bấm vào Trình hướng dẫn Truy vấn.
-
Trong hộp thoại Truy vấn Mới, hãy bấm đúp vào Trình hướng dẫn Truy vấn Tìm Không khớp.
-
Trên trang thứ nhất của trình hướng dẫn, hãy chọn bảng có các bản ghi không khớp, rồi bấm Tiếp. Ví dụ, nếu bạn muốn xem danh sách các sản phẩm Northwind chưa bao giờ được bán, hãy chọn bảng Sản phẩm.
-
Trên trang thứ hai, hãy chọn bảng có liên quan, rồi bấm Tiếp. Để làm theo ví dụ này, hãy chọn bảng Chi tiết Đơn hàng.
-
Trên trang thứ ba, hãy chọn những trường liên quan đến các bảng này, bấm < = >, rồi bấm Tiếp theo. Bạn chỉ có thể chọn một trường từ mỗi bảng. Để làm theo ví dụ, hãy chọn ID từ bảng Sản phẩm và ID Sản phẩm từ bảng Chi tiết Đơn hàng. Xác minh rằng đã khớp trường chính xác bằng cách xem lại văn bản trong hộp Trường khớp. Bạn có thể liên kết các trường còn lại sau khi hoàn tất trình hướng dẫn.
Hãy lưu ý rằng các trường ID và ID Sản phẩm có thể đã được chọn do các quan hệ hiện có được dựng sẵn trong mẫu.
-
Trên trang thứ tư, hãy bấm đúp vào các trường bạn muốn xem từ bảng thứ nhất, rồi bấm Tiếp. Để làm theo ví dụ, hãy chọn trường ID và Tên Sản phẩm.
-
Trên trang thứ năm, bấm vào Sửa đổi thiết kế, rồi bấm vào Kết thúc.
Truy vấn sẽ mở ở cửa sổ Thiết kế.
-
Trong lưới thiết kế truy vấn, hãy lưu ý rằng hai bảng được liên kết ở các trường (trong ví dụ này là ID và ID Sản phẩm) mà bạn đã chỉ định ở trang thứ ba của trình hướng dẫn. Hãy tạo một liên kết cho mỗi cặp còn lại của các trường liên quan bằng cách kéo chúng từ bảng thứ nhất (bảng có các bản ghi không khớp) sang bảng thứ hai. Trong ví dụ này là kéo trường Giá Niêm yết từ bảng Sản phẩm sang trường Đơn Giá ở bảng Chi tiết Đơn hàng.
-
Hãy bấm đúp vào kết nối (đường kết nối các trường) để hiển thị hộp thoại Thuộc tính Kết nối. Với mỗi kết nối, hãy chọn tùy chọn bao gồm tất cả các bản ghi từ bảng Sản phẩm, rồi bấm vào OK.
Trong lưới thiết kế truy vấn, hãy lưu ý rằng mỗi đường nối bây giờ có một mũi tên ở một đầu.
1. Khi bạn tạo liên kết giữa các trường Giá Niêm yết và Đơn Giá, liên kết sẽ hạn chế đầu ra từ cả hai bảng. Chỉ các bản ghi có dữ liệu khớp trong các trường ở cả hai bảng mới được đưa vào kết quả truy vấn.
2. Sau khi bạn sửa thuộc tính nối, đường nối sẽ chỉ hạn chế bảng mà mũi tên chỉ đến. Tất cả các bản ghi trong bảng mà mũi tên chỉ ra từ đó sẽ được đưa vào kết quả truy vấn.
Lưu ý: Hãy đảm bảo rằng tất cả các mũi tên trên các đường nối đang chỉ về cùng một hướng.
-
Đối với bảng có các bản ghi liên quan (trong ví dụ này, đó là bảng Chi tiết Đơn hàng), hãy bấm đúp vào mỗi trường được nối với bảng thứ nhất, ngoại trừ trường bạn đã chọn ở trang thứ ba của trình hướng dẫn (trong trường hợp này, đó là trường ID Sản phẩm). Đối với mỗi trường trong số này, hãy xóa hộp kiểm trong hàng Hiện và nhập Is Null vào hàng Tiêu chí.
-
Hoặc bạn có thể thêm tiêu chí vào các trường truy vấn khác hoặc tạo trường đã tính toán được dựa trên các giá trị từ bảng thứ nhất.
-
Trên tab Thiết kế Truy vấn, trong nhóm Kết quả, bấm Chạy.
Truy vấn sẽ trả về tên của những sản phẩm không có trong bất kỳ đơn hàng hiện có nào.
Tạo truy vấn của riêng bạn để tìm các bản ghi không khớp
-
Trên tab Tạo, trong nhóm Truy vấn, hãy bấm vào Thiết kế Truy vấn.
-
Bấm đúp vào bảng có các bản ghi không khớp, rồi bấm đúp vào bảng có các bản ghi liên quan.
-
Trong lưới thiết kế truy vấn, hai bảng cần có các đường, được gọi là đường nối, kết nối chúng theo các trường liên quan. Nếu không có đường nối, hãy tạo đường nối bằng cách kéo mỗi trường liên quan từ bảng thứ nhất (bảng có các bản ghi không khớp) đến bảng thứ hai (bảng có các bản ghi liên quan).
-
Bấm đúp vào một liên kết để mở hộp thoại Thuộc tính Liên kết. Với mỗi liên kết, hãy chọn tùy chọn 2, rồi bấm vào OK.
Trong lưới thiết kế truy vấn, các liên kết thay đổi để có mũi tên ở một đầu.
Lưu ý: Hãy đảm bảo rằng tất cả các liên kết đều trỏ về cùng một hướng. Truy vấn sẽ không chạy nếu liên kết trỏ về các hướng khác nhau và có thể không chạy nếu có bất kỳ liên kết nào không phải dạng mũi tên. Các liên kết cần trỏ từ bảng có các bản ghi không khớp.
-
Trong bảng có bản ghi không khớp, hãy bấm đúp vào trường mà bạn muốn truy vấn sẽ trả về.
Bạn có thể nhập tiêu chí cho bất cứ trường nào trong số này hoặc tạo trường đã tính toán.
-
Đối với bảng có các bản ghi liên quan, hãy bấm đúp vào từng trường được liên kết với bảng đầu tiên. Đối với từng trường trong số này, hãy bỏ chọn hộp trong hàng Hiển thị và nhập Là Null vào hàng Tiêu chí.
-
Trên tab Thiết kế Truy vấn, trong nhóm Kết quả, bấm Chạy.
Xem Thêm
Tìm các bản ghi trùng lặp bằng truy vấn
Dùng một truy vấn hợp để kết hợp nhiều truy vấn vào một kết quả