Cùng xây dựng file Gia Phả

Liên hệ QC

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,709
Được thích
10,814
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
Mình đang xây dựng file Gia Phả trên Excel. Về cơ bản đã xong phần thô nhưng do chưa biết nhiều về Gia Phả nên chưa biết trình bày như thế nào cho đầy đủ và phù hợp.

Mình post lên đây mong các anh chị và các bạn quan tâm cùng nhau xây dựng và hoàn thiện nó. Tất cả mọi người quan tâm đều có thể tham gia đóng góp xây dựng mà không nhất thiết phải biết về VBA. Ví dụ như:
- Trình bày như thế nào cho phù hợp và thẩm mỹ
- Cấu trúc Gia phả cần có những gì, cần bổ sung những thông tin nào, thông tin nào thừa cần bỏ bớt
- Sửa code để cải thiện tốc độ
- ...

Pass VBA: huuthang_bd
 

File đính kèm

  • Gia pha Excel.rar
    118.9 KB · Đọc: 1,383
Tôi cũng tính xây dựng chương trình gia phả, nhưng trên AutoCad thì thuận lợi hơn.
 
Hi Thắng,
Anh ước tính sẽ có nhiều vấn đề lắm, nhưng không tự mình trực tiếp làm nên không dám góp ý nhiều vì mỗi góp ý có thể gây ra nhiều rắc rối hơn anh hình dung.

Một vài góp ý của anh như thế này:
1. Mã số cá nhân không nên theo dạng như vậy, dù rằng có thể dể nhận diện người trong phả hệ nhưng sẽ rắc rối về sau khi câu phả hệ nhiều lên. Theo anh cứ đặt theo mã thứ tự tăng dần. Việc xác định vị trí trong phả hệ thuộc về các mối quan hệ.
2. Không nên xây dựng sẳn cây phả đồ.
3. Dữ liệu chia ra thành 2 bảng: 1 bảng về thông tin cá nhân, một bảng về thông tin quan hệ.
 
Hi Thắng,
Anh ước tính sẽ có nhiều vấn đề lắm, nhưng không tự mình trực tiếp làm nên không dám góp ý nhiều vì mỗi góp ý có thể gây ra nhiều rắc rối hơn anh hình dung.

Một vài góp ý của anh như thế này:
1. Mã số cá nhân không nên theo dạng như vậy, dù rằng có thể dể nhận diện người trong phả hệ nhưng sẽ rắc rối về sau khi câu phả hệ nhiều lên. Theo anh cứ đặt theo mã thứ tự tăng dần. Việc xác định vị trí trong phả hệ thuộc về các mối quan hệ.
2. Không nên xây dựng sẳn cây phả đồ.
3. Dữ liệu chia ra thành 2 bảng: 1 bảng về thông tin cá nhân, một bảng về thông tin quan hệ.
Em chưa hiểu ý anh lắm.
1. Mã số cá nhân em xây dựng gồm 2 phần phân cách bằng ký tự "_" theo nguyên tắc sau:
- Phần 1 (trước ký tự "_") mỗi đời là 2 ký tự, mã số của con bằng mã số của cha (mẹ) và 2 ký tự thể hiện người đó là con thứ mấy.
- Phần 2 (sau ký tự "_") gồm 3 ký tự. Nếu ký tự đầu là H thì đó là người trong tộc, ngược lại ký tự đầu là N thì người đó là dâu hoặc rể. Hai ký tự sau: nếu ký tự đầu là H thì cho biết người đó là con của vợ (hoặc chồng) thứ mấy của cha (hoặc mẹ); nếu ký tự đầu là N thì cho biết đó là vợ (hoặc chồng) thứ mấy.
Ví dụ:
Một người có mã số 010101_H02 là con đầu của người 0101 và người này là con của vợ 2 (hoặc chồng 2)
Vợ 1 (hoặc chồng 1) của người này sẽ có mã số 010101_N01
Vợ 2 (hoặc chồng 2) của người này sẽ có mã số 010101_N02
...
Con đầu của người này sẽ có mã số 01010101_H01 nếu là con của vợ 1 (hoặc chồng 1), hoặc 01010101_H02 nếu là con của vợ 2 (hoặc chồng 2)
Con thứ hai của người này sẽ có mã số 01010102_H01 nếu là con của vợ 1 (hoặc chồng 1), hoặc 01010102_H02 nếu là con của vợ 2 (hoặc chồng 2)
...
Em chưa hiểu cách đặt mã số theo thứ tự tăng dần anh nói.

2. Khi nào thay đổi dữ liệu thì đã có nút Vẽ phả đồ để người dùng vẽ lại mà. Vẫn chưa hiểu ý anh khi người dùng muốn xem phả đồ thì xem ở đâu.

Do anh chỉ mô tả nên em chưa hiểu ý anh lắm.
 
Hi Thắng,

1. Vụ mã số thì theo anh nếu em chèn vào các mối quan hệ thì càng ngày càng mệt.
2. Ý tưởng vẻ phả đồ và bảng quan hệ của anh trong file.
 

File đính kèm

  • Gia pha_binh.rar
    117.8 KB · Đọc: 636
Thắng có thể vào trong này tìm hiểu cách xây dựng gia phả của họ như thế nào nè: https://www.geni.com/login
 
Xin góp 1 vài ý như sau:

1- Ngày mất là ngày giỗ vì vậy trong cơ sở dữ liệu nên bỏ cột ngày giỗ. Khi tra ngày giỗ thì lấy ngày mất bỏ năm đi là được.

2- Thực tế trong 1 gia đình (bố mẹ, anh em) có khi đã mỗi người ở một nơi nên việc cập nhật đầy đủ thông tin cả 1 dòng họ vào 1 trang là không đơn giản. Vì vậy tôi đã từng nghĩ đến việc mỗi gia đình để 1 file khi tra đến người nào thì tùy theo lựa chọn mà tìm đến các file có mối quan hệ liên quan Ví dụ tìm người trong cành, chi của "người muốn xem" hoặc tìm từ đời của "người muốn xem" trở về trước hoặc trở về sau hoặc đến đời nào đó...

3- Về mã số thì đánh theo đời (hàng), theo cành, chi... (cành cả, cành 2, cành 3 ...). Ví dụ: Cụ tổ có mã là 01 sinh ra 3 người con thì mã số của các con sẽ là 02.01; 02.02; 02.03... (sô 02 đầu là đời thứ 2, số 01, 02, 03 là cành 1, cành 2, cành 3) các cháu của người con thứ nhất (đời thứ 3, cành 1) là 03.01.01; 03.01.02...các cháu của người con thứ hai (đời thứ 3, cành 2) là 03.02.01; 03.02.02... Tức là mã số phải nói lên được vị trí của người đó trong dòng họ.

Thực sự tôi là người xa xứ nên không biết nhiều về họ tộc cũng như gia phả vì vậy xin mạo muội tham gia mấy ý (dù đúng hay sai cũng xin không tranh luận).
 
hi anh Trungchinhs
1. Thường thì ghi nhận ngày mất là ngày dương lịch, còn ngày giỗ là ngày âm lịch nên mới có chuyện 2 cột như vậy.
2. Đó là lý do em nghĩ nên vẽ lại cây phả đồ. Cũng là cách làm em ví dụ trong file của em.
 
Cảm ơn ý kiến đóng góp của mọi người. Em có một số ý kiến sau:
1. Gộp ngày mất và ngày giỗ: Có những trường hợp không xác định được ngày mất nhưng người ta vẫn chọn một ngày nào đó để làm giỗ nên em nghĩ việc để riêng ngày mất và ngày giỗ là cần thiết.

2. Phả đồ theo hướng của anh Bình gọn nhưng chỉ xem được 3 đời. Em nghĩ nhiều người muốn xem tổng quát cả dòng họ nên em nghĩ vệc vẽ phả đồ cho cả dòng họ là một nhu cầu cần thiết.

3. Thêm một sheet QuanHe để quản lý các mối quan hệ như anh Bình là cách hay. Tuy nhiên, nếu bỏ sự liên kết các mối quan hệ trong mã số thì sẽ không xác định được mỗi người con là con của vợ thứ mấy. Trong mã số của em chỉ thể hiện mối quan hệ giữa 2 đời nên em nghĩ dữ liệu ít hay nhiều em nghĩ cũng không ảnh hưởng gì.
 
Cảm ơn ý kiến đóng góp của mọi người. Em có một số ý kiến sau:
1. Gộp ngày mất và ngày giỗ: Có những trường hợp không xác định được ngày mất nhưng người ta vẫn chọn một ngày nào đó để làm giỗ nên em nghĩ việc để riêng ngày mất và ngày giỗ là cần thiết.

2. Phả đồ theo hướng của anh Bình gọn nhưng chỉ xem được 3 đời. Em nghĩ nhiều người muốn xem tổng quát cả dòng họ nên em nghĩ vệc vẽ phả đồ cho cả dòng họ là một nhu cầu cần thiết.

3. Thêm một sheet QuanHe để quản lý các mối quan hệ như anh Bình là cách hay. Tuy nhiên, nếu bỏ sự liên kết các mối quan hệ trong mã số thì sẽ không xác định được mỗi người con là con của vợ thứ mấy. Trong mã số của em chỉ thể hiện mối quan hệ giữa 2 đời nên em nghĩ dữ liệu ít hay nhiều em nghĩ cũng không ảnh hưởng gì.
Bài này hay quá.
Mình cũng rất quan tâm vấn đề này.
Bạn huuthang_bd đã tập hợp được những góp ý và bổ sung được phiên bản mới chưa, xin vui lòng cho mình và mọi người tham khảo.
Tks
 
Ví dụ như:
- Trình bày như thế nào cho phù hợp và thẩm mỹ

- ...
File của bạn làm rất kì công.
Mình xin góp ý về phần hướng dẫn sử dụng. Phần Help đưa vào 1 sheet như thế trông xấu tệ. Bạn thử cách khác ví dụ như Dialog sheet mà bạn ndu đã làm (mượn file bạn ndu để chế biến, mong bạn thông cảm)
http://www.giaiphapexcel.com/forum/showthread.php?85172-Nhờ-tư-vấn-thiết-kế-CỬA-SỔ-HELP
Mã:
Sub ShowHelp()
  Dim dlg As DialogSheet
  Set dlg = ThisWorkbook.DialogSheets("Help")
  dlg.Show
End Sub
HUONG DAN SU DUNG.jpg
 

File đính kèm

  • cuasoHELP.xlsm
    34.9 KB · Đọc: 163
Lần chỉnh sửa cuối:
File của bạn làm rất kì công.
Mình xin góp ý về phần hướng dẫn sử dụng. Phần Help đưa vào 1 sheet như thế trông xấu tệ. Bạn thử cách khác ví dụ như Dialog sheet mà bạn ndu đã làm (mượn file bạn ndu để chế biến, mong bạn thông cảm)
http://www.giaiphapexcel.com/forum/showthread.php?85172-Nhờ-tư-vấn-thiết-kế-CỬA-SỔ-HELP
Mã:
Sub ShowHelp()
  Dim dlg As DialogSheet
  Set dlg = ThisWorkbook.DialogSheets("Help")
  dlg.Show
End Sub
View attachment 115000

Thì tôi nói là mới chỉ làm xong phần thô thôi mà. Phần trình bày còn cần phải chỉnh sửa nhiều.
Cảm ơn phần đóng góp của bạn
 
Xin được góp ý

1) Khi chọn nút cmb_PhaDo trong Form Frm_TruyXuatTT thì nên tô màu nền cho người được tìm thấy cho dễ nhận biết. Hiện tại rất khó nhìn. VD như thế này chẳng hạn
Mã:
Private Sub Cmb_PhaDo_Click()
Dim FRng As Range
Set FRng = PhaDo.Cells.Find(Me.Lbl_MaSo.Caption, , xlFormulas, xlWhole)
If FRng Is Nothing Then
    MsgBox "Khong tim thay"
Else
    Unload Me
    Unload Frm_TimKiem
    PhaDo.Select
[COLOR=#0000cd]    PhaDo.UsedRange.Interior.ColorIndex = 2
    FRng.Offset(-1).Select
    Selection.Interior.ColorIndex = 6[/COLOR]
End If
End Sub
Đương nhiên khi chọn người khác để xem thông tin thì phải trả lại màu cho người vừa chọn.

2) Có thể bổ xung cmb trong Form Frm_ThongTinsobo để vẽ phả đồ với gốc là từ 1 người nào đó không
Them cmd VE PHA DO CUA NGUOI NAY.jpg
Ví dụ khi chọn Tèo Văn Tây sẽ hiện lên bảng thông tin sơ bộ về người này và có 1 cmb để vẽ NHÁNH phả đồ của người này (nhu cầu xem như thế này chắc chắn là có).
Chưa nghĩ ra cách sửa.
Mong mọi người đóng góp thêm để hoàn thiện file của huuthang_bd
 
Xin được góp ý

1) Khi chọn nút cmb_PhaDo trong Form Frm_TruyXuatTT thì nên tô màu nền cho người được tìm thấy cho dễ nhận biết. Hiện tại rất khó nhìn. VD như thế này chẳng hạn
Mã:
Private Sub Cmb_PhaDo_Click()
Dim FRng As Range
Set FRng = PhaDo.Cells.Find(Me.Lbl_MaSo.Caption, , xlFormulas, xlWhole)
If FRng Is Nothing Then
    MsgBox "Khong tim thay"
Else
    Unload Me
    Unload Frm_TimKiem
    PhaDo.Select
[COLOR=#0000cd]    PhaDo.UsedRange.Interior.ColorIndex = 2
    FRng.Offset(-1).Select
    Selection.Interior.ColorIndex = 6[/COLOR]
End If
End Sub
Đương nhiên khi chọn người khác để xem thông tin thì phải trả lại màu cho người vừa chọn.

2) Có thể bổ xung cmb trong Form Frm_ThongTinsobo để vẽ phả đồ với gốc là từ 1 người nào đó không
View attachment 115483
Ví dụ khi chọn Tèo Văn Tây sẽ hiện lên bảng thông tin sơ bộ về người này và có 1 cmb để vẽ NHÁNH phả đồ của người này (nhu cầu xem như thế này chắc chắn là có).
Chưa nghĩ ra cách sửa.
Mong mọi người đóng góp thêm để hoàn thiện file của huuthang_bd
Ý kiến của bạn rất hay. Mình không biết nhiều về lập trình VBA nhưng rất quan tâm đến vấn đề này. Không biết bạn huuthang_bd phát triển phần mềm được đến đâu rồi để cho mọi người ( trong đó có mình) được tham khảo...
 
Hi All.
có web này hỗ trợ tạo bản đồ gia phả online 1 các đễ dàng và cũng hỗ trợ Download bản đồ về dưới dạng excel. cả nhà có thể vào tham khảo hướng dẫn tại link này nhé.
http://zeanni.com/guide
Thấy Hay thì cho 1 cái like nhé :D
 
Em chào các anh trên diễn đàn.
em cũng đang muốn làm cây phả hệ cho họ nhà mình,nhưng em muốn thêm một chút như sau.
+ thêm ảnh vào cây phả hệ. vì em nghĩ họ tộc lớn dần, đến lúc không có ảnh thì nhìn tên cũng không có ý nghĩa lắm
+ thêm 1 dòng tên vợ- chồng vào . theo quan điểm của họ tộc thì chỉ những người trong dòng tộc mới xuất hiện trên cây phả hệ, nhưng thực sự vai trò của con dâu con rể bây giờ cũng gần như con đẻ rồi. mà để mọi người gắn bó với nhau hơn, em vẫn muốn thể hiện vào.

theo em thấy, khi cây phả hệ lớn lên, nó sẽ phát triển theo chiều ngang nhanh, còn số đời ( chiều dọc) lại rất chậm nên sẽ rất mất cân đối, khó in ấn. nên nếu thêm thông tin vợ chồng, ảnh vào sẽ làm kích thước chiều dọc tăng gấp khoảng 4 lần -> thực tế trông đẹp và dễ in, em mong mỗi node trên cây sẽ có dạng như sau.
Untitled 1.jpg
về quy tắc tạo mã định danh để mở rộng thông tin về con dâu, con rể . Theo em hiểu thì phần đuôi H01 hay N01 chỉ thể hiện là có vẽ người đó hay không, em muốn đổi thành H là nội tộc, N là ngoại. cơ sở dữ liệu thêm 1 cột thể hiện có vẽ hay không => vừa dễ cho việc lọc thông tin sau này.

em đang xem code của anh thắng chủ thread ở đây, và em muốn phát triển thêm như ở trên. Em cũng không rành về VBA lắm,em tiếp tục thread này để mong ai còn quan tâm có thể giúp đỡ em. Bây giờ em tiếp tục nghiên cứu code của anh Thắng và sẽ update thêm khi có tiến triển.

trân trọng cảm ơn
 
Không biết chủ thớt đã hoàn thành xong chưa, sao ko thấy up file cuối cùng lên nhỉ?
 
Web KT
Back
Top Bottom