Nếu bạn không thể sử dụng VBA thì không thể làm theo cách của mình nhé,
Cách của mình khá đơn giản nhưng phài dùng VBA, bạn google tìm hiểu thêm , lâu rồi mình không có làm access nữa. Nhưng có thể gợi ý cho bạn thế này:
Khi tạo khách hàng, trong sự kiện click_save hoặc click_create_new bạn sử dụng VBA làm mấy thao tác sau:
1. Kết nối đến table "TẬP"
2. Kiểm tra khách hàng có tồn tại trong bảng "TẬP" hay chưa, cái này có thể không cần làm vì CIF là duy nhất nên khi tạo mới thì trong bảng TẬP nó cũng là duy nhất, nếu chọn CIF là key chính duy nhất thì bỏ qua bước này:
3. kiểm tra bộ key ( TẬP + STT):
- Theo nguyên tắc thì CIF không bao giờ được xóa ( chỉ có trạng thái là Closed hoặc active) nên số tập ( giả sử là number) luôn tăng theo thời gian.
Giả sử số tập là i, số ttt trong tập là j
Cho thủ tục chạy i đến n ( n là số records trong bảng TẬP)
Check max j tương ứng với i, nếu j <5 thì j = max j + 1 ,chính là STT trong tập mà bạn cần tìm
4. Đã tìm được i,j thì chỉ tạo new records lưu lại
--------------------
À không biết VBA thì bỏ cách mình hướng dẫn đi nhé, mà nếu chưa biết thì bài tập của bạn rất khó hình thành, vì chỉ cần access nó có bất cứ yêu cầu nào mà phải căn cứ vào điều kiện cho trước thì hầu hết phải dùng VBA