RE: [Hỏi] Đánh số thứ tự có điều kiện
pherotao > 08-12-10, 03:38 PM
Một vấn đề trong Access
Tôi có một chương trình Access về qlí Giáo dân có CSDL như sau:
- Table1: T_Giáo Dân (MaGD, Hoten, Gioitinh, Ngay Sinh, HtenCha, HtenMe, MaSoGD).
- Table2: T_Hôn Nhân (MaSoGD, MaGDNam, HtenChaNam, HtenMeNam, MaGDNu, HtenChaNu, HtenMeNu, NgayKetHon).
+ Form1: F_GD (nguồn Table1).
+ Form2: F_HonNhan (nguồn Table2).
Trong đó, Table2 với các trường MaGDNam, MaGDNu lấy nguồn từ MaGD của Table1.
Ban đầu, vì theo chương trình thiết kế, ta phải nhập dữ liệu Form1 trước (vì như vậy thì Form2 mới có nguồn mà làm việc được). Lúc này, các Giáo dân (già trẻ lớn bé) đều chưa kết hôn, nên MaSoGD của Table1 bị trống. Và như vậy, nếu muốn kiểm tra xem trong Table1 có bao nhiêu gia đình thì thật là khổ sở. Vì mỗi gia đình có thể có 2-3 người hoặc nhiều hơn.
Cho nên, xin các bác chỉ giáo giùm là làm sao để có 1 MaSoGD tạm thời (số này trùng nhau khi là thành viên trong cùng gia đình, và ngược lại).
VD: Lê văn C --> con ông Lê văn A , con bà Nguyễn thị B
Lê văn D --> con ông Lê văn A , con bà Nguyễn thị B
Lê thị E --> con ông Lê văn A , con bà Nguyễn thị B
+ MaSoGD tạm của họ là: 001
Trần văn Ba --> con ông Trần văn Một, con bà Hồ thị Hai
Trần văn Bốn --> con ông Trần văn Một, con bà Hồ thị Hai
Trần văn Năm --> con ông Trần văn Một, con bà Hồ thị Hai
Trần thị Sáu --> con ông Trần văn Một, con bà Hồ thị Hai
+ MaSoGD tạm của họ là : 002
v.v...
Khi Giáo dân trong Table1 kết hôn (ta thao tác trên Form2). Theo VD trên, ta có:
+ anh Lê Văn C (con ông bà ...) kết hôn cùng chị Trần Thị Sáu (con ông bà ...).
Lúc này MaSoGD chính thức của họ là MaSo001 được ghi nhận tự động vào Table2. Và làm cách nào để ghi ngược vào MaSoGD của Table1 là MaSo001 cho cả 2 người, vì họ đã có Mã số kết hôn. Và các con của họ (trước đó mang tạm số gì gì đó) cũng tự động mang MaSoGD001 của cha mẹ chúng. Xin nhắc lại là mỗi gia đình đều có 1 sổ gia đình khi kết hôn (giống sổ hộ khẩu). Khi 1 thành viên trong gia đình kết hôn, thành viên đó được cấp sổ mới, mang 1 mã số mới (giống cắt hộ khẩu cho con vậy đó). Cũng nói thêm là, MaSoGD của Table2 không được trùng (vì làm khóa chính rồi) và MaSoGD của Table1 - Table2 là hoàn toàn tự động cập nhật.
Tôi đã suy nghĩ cả tháng nay rồi, nhức đầu quá. Xin các bác xem qua và tìm cách hướng dẫn, chỉ giáo, tôi thật lòng mang ơn nhiều lắm!