Nếu bạn từng làm việc với Microsoft Access 2019 mà chỉ dừng lại ở việc tạo bảng rồi nhập dữ liệu, thì thật ra bạn mới chạm vào bề nổi thôi. Access sinh ra không phải để chứa dữ liệu rời rạc. Nó được thiết kế để các bảng liên kết với nhau một cách logic. Và phần giúp chúng “bắt tay” với nhau chính là Relationships.
Nghe hơi kỹ thuật nhỉ? Nhưng thật ra khi hiểu rồi, bạn sẽ thấy nó hợp lý đến mức không làm thì… khó chịu.
Vì sao phải tạo mối quan hệ?
Hãy tưởng tượng bạn có hai bảng:
-
KhachHang
-
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, Access không hề biết hai bảng này liên quan gì. Khi tạo Query hoặc Report, bạn phải tự nối bảng. Và nếu nối sai? Kết quả sẽ sai theo. Thậm chí bạn còn không nhận ra ngay.
Relationship giúp:
-
Giữ dữ liệu nhất quán
-
Tránh nhập trùng
-
Ngăn xóa nhầm dữ liệu liên quan
-
Làm truy vấn chính xác hơn
Nói nôm na, nó giống như việc xây khung xương trước khi đắp thịt lên vậy.

Hiểu Primary Key và Foreign Key trước đã
Muốn tạo relationship, mỗi bảng nên có Primary Key. Đây là trường duy nhất, không được trùng lặp.
Ví dụ:
-
KhachHang → MaKhachHang (Primary Key)
-
DonHang → MaDonHang (Primary Key)
Trong bảng DonHang, bạn cần có trường MaKhachHang để liên kết về bảng KhachHang. Trường này chính là Foreign Key.
Một lỗi khá phổ biến là hai trường liên kết có kiểu dữ liệu khác nhau. Ví dụ một bên là AutoNumber, bên kia lại để Text. Thế là Access báo lỗi ngay.
Vì vậy, trước khi tạo quan hệ, hãy kiểm tra kiểu dữ liệu cho khớp.
Các loại mối quan hệ phổ biến trong Access 2019
Access 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)
One-to-Many là loại phổ biến nhất. Ví dụ:
-
Một khách hàng có nhiều đơn hàng
-
Một lớp học có nhiều học sinh
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 bảng trung gian để quản lý mối quan hệ.
Nhưng nếu bạn mới bắt đầu, cứ tập trung làm cho chắc One-to-Many trước đã.

Cách tạo Relationship trong Access 2019
Giờ vào phần thực hành nhé.
Bước 1: Mở cửa sổ Relationships
-
Mở database trong Access 2019
-
Vào tab Database Tools
-
Nhấn Relationships
Một cửa sổ mới sẽ hiện ra. 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.
Nhìn sơ đồ ban đầu có thể hơi rối. Nhưng thực ra chỉ là giao diện trực quan để bạn thao tác thôi.
Bước 2: Kéo – Thả để tạo 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ẽ xuất hiện.
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.
Một đường nối xuất hiện giữa hai bảng với ký hiệu “1” và “∞”. Thế là xong.
Nhìn thấy đường nối đó là biết các bảng đã “kết nối” rồi.

Enforce Referential Integrity – Tại sao nên bật?
Khi bật Enforce Referential Integrity, Access sẽ:
-
Không cho nhập đơ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
Điều này giúp dữ liệu không bị “mồ côi”.
Nếu bạn không bật, hệ thống có thể xuất hiện những bản ghi vô nghĩa. Ví dụ đơn hàng mà không có khách hàng nào cả.
Còn Cascade Update và Cascade Delete thì sao?
-
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 khách hàng, toàn bộ đơn hàng liên quan cũng bị xóa.
Cascade Delete rất tiện, nhưng phải dùng cẩn thận. Một cú click nhầm có thể khiến bạn mất cả loạt dữ liệu.
Relationship hỗ trợ Query và Report như thế nào?
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 nhớ điều kiện nối từng trường.
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 tự nối đúng theo quan hệ có sẵn.
Nhanh 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
-
Dữ liệu cũ không phù hợp với Referential Integrity
-
Tạo quan hệ chồng chéo, vòng lặp
Nếu gặp lỗi, đừng hoảng. Kiểm tra lại kiểu dữ liệu trước tiên. Sau đó xem dữ liệu hiện tại có bản ghi nào vi phạm quy tắc không.
Phần lớn lỗi đều xử lý được nếu bình tĩnh.

