Nếu bạn từng làm việc với Microsoft Access 2016 và chỉ tạo bảng rồi nhập dữ liệu mà chưa đụng tới phần Relationships, thì thật lòng mà nói… bạn mới đi được nửa chặng đường thôi.
Access không phải Excel. Nó không sinh ra để chứa dữ liệu rời rạc. Nó sinh ra để các bảng “nói chuyện” với nhau. Và muốn chúng nói chuyện được, bạn phải tạo mối quan hệ.
Nghe hơi kỹ thuật nhỉ? Nhưng bình tĩnh. Khi hiểu bản chất rồi, bạn sẽ thấy nó hợp lý đến mức không làm thì… khó chịu.
Mối quan hệ trong Access là gì mà quan trọng vậy?
Hãy tưởng tượng bạn có hai bảng:
-
Bảng KhachHang
-
Bảng DonHang
Mỗi khách hàng có thể có nhiều đơn hàng. Nhưng mỗi đơn hàng chỉ thuộc về một khách hàng.
Nếu bạn không tạo relationship giữa hai bảng này, Access không hiểu chúng liên quan gì với nhau. Khi tạo query hoặc report, bạn sẽ phải nối bằng tay. Và sai sót rất dễ xảy ra.
Relationship giúp:
-
Giữ dữ liệu nhất quán
-
Tránh trùng lặp
-
Ngăn nhập sai
-
Tạo truy vấn chính xác hơn
Nó giống như việc bạn xây móng nhà trước khi xây tường. Không ai xây tường trước cả, đúng không?

Hiểu về Primary Key và Foreign Key trước đã
Trước khi tạo relationship, bạn cần đảm bảo mỗi bảng có Primary Key.
Primary Key là trường duy nhất, không trùng lặp. Ví dụ:
-
KhachHang → MaKhachHang (Primary Key)
-
DonHang → MaDonHang (Primary Key)
Trong bảng DonHang, bạn cũng cần có trường MaKhachHang để liên kết về bảng KhachHang. Trường này gọi là Foreign Key.
Nếu thiếu Primary Key, Access sẽ không cho bạn tạo mối quan hệ chuẩn chỉnh đâu. Và nếu kiểu dữ liệu không khớp nhau (ví dụ một bên là Text, một bên là Number), thì cũng lỗi luôn.
Thế nên kiểm tra kỹ trước khi bắt đầu nhé.
Các loại mối quan hệ phổ biến
Access 2016 hỗ trợ ba kiểu chính:
-
One-to-Many (Một – Nhiều)
-
One-to-One (Một – Một)
-
Many-to-Many (Nhiều – Nhiều, cần bảng trung gian)
Trong thực tế, One-to-Many là phổ biến nhất. Ví dụ:
-
Một lớp học có nhiều học sinh
-
Một hóa đơn có nhiều sản phẩm
Many-to-Many thì phức tạp hơn. Ví dụ:
-
Một sinh viên học nhiều môn
-
Một môn có nhiều sinh viên
Khi đó bạn cần thêm một bảng trung gian để quản lý quan hệ.
Nhưng nếu bạn mới bắt đầu, cứ tập trung vào One-to-Many trước đã.

Cách tạo Relationship trong Access 2016
Giờ vào phần thực hành nhé.
Bước 1: Mở cửa sổ Relationships
-
Mở database trong Access 2016
-
Vào tab Database Tools
-
Nhấn Relationships
Một cửa sổ mới sẽ xuất hiện. Nếu chưa có bảng nào hiển thị, bạn nhấn “Show Table” để thêm các bảng cần liên kết.
Ban đầu nhìn hơi rối. Nhưng thực ra chỉ là sơ đồ thôi.
Bước 2: Kéo – Thả trường liên kết
Đây là phần dễ nhất.
-
Nhấp vào Primary Key của bảng chính
-
Kéo sang trường tương ứng ở bảng phụ
-
Thả chuột
Hộp thoại Edit Relationships sẽ hiện ra.
Tại đây, bạn nên tick vào:
-
Enforce Referential Integrity
-
Cascade Update Related Fields (nếu cần)
-
Cascade Delete Related Records (cân nhắc kỹ)
Sau đó nhấn Create.
Thế là xong. Một đường nối xuất hiện giữa hai bảng với ký hiệu “1” và “∞”.
Nhìn thấy đường nối đó là thấy… yên tâm hẳn.

Enforce Referential Integrity – Đừng bỏ qua
Đây là phần rất quan trọng.
Khi bạn chọn Enforce Referential Integrity, Access sẽ:
-
Không cho tạo đơn hàng nếu khách hàng không tồn tại
-
Không cho xóa khách hàng nếu còn đơn hàng liên quan
Nói cách khác, nó giữ cho dữ liệu không bị “mồ côi”.
Nếu bạn không bật tính năng này, database có thể chứa những bản ghi vô nghĩa. Và đến lúc phát hiện thì đã quá muộn.
Còn Cascade Update và Cascade Delete?
-
Cascade Update: Nếu thay đổi mã ở bảng chính, bảng phụ tự cập nhật theo.
-
Cascade Delete: Nếu xóa bản ghi chính, các bản ghi liên quan cũng bị xóa.
Cascade Delete nghe tiện, nhưng phải cẩn thận. Xóa nhầm một dòng là mất cả loạt dữ liệu phía sau.
Relationship giúp gì khi làm Query?
Khi bạn tạo Query, Access sẽ tự động hiểu cách nối bảng dựa trên relationship đã thiết lập.
Không cần viết Join phức tạp. Không cần đoán điều kiện nối.
Ví dụ bạn muốn xem danh sách đơn hàng kèm tên khách hàng. Chỉ cần thêm hai bảng vào Query Design, Access sẽ tự nối theo relationship có sẵn.
Tiện hơn rất nhiều so với việc nối thủ công.
Những lỗi thường gặp khi tạo Relationships
-
Kiểu dữ liệu không khớp nhau
-
Chưa đặt Primary Key
-
Có dữ liệu trùng hoặc sai trong bảng
-
Tạo quan hệ vòng lặp không cần thiết
Nếu Access báo lỗi, đừng hoảng. Kiểm tra lại từng bước. Thường vấn đề nằm ở kiểu dữ liệu hoặc dữ liệu hiện có không phù hợp với Referential Integrity.
Chỉnh lại là ổn.

