Đổi năm dương lịch sang âm lịch

  • Thread starter Thread starter h3l
  • Ngày gửi Ngày gửi
Liên hệ QC

h3l

Thành viên mới
Tham gia
21/7/11
Bài viết
3
Được thích
0
Tôi viết thủ tục thực hiện đổi năm từ dương lịch sang âm lịch nhưng không thực hiện được, mong các anh chị trong diễn đàn xem giúp tôi hướng khắc phục:
Public Sub namAL(AL As String)
'Khai bao bien
Dim chi, can
'Tinh can
can = (Year(Now()) + 6) Mod 10
If can = 0 Then can = "Giap "
If can = 1 Then can = "At "
If can = 2 Then can = "Binh "
If can = 3 Then can = "Dinh "
If can = 4 Then can = "Mau "
If can = 5 Then can = "Ky "
If can = 6 Then can = "Canh "
If can = 7 Then can = "Tan "
If can = 8 Then can = "Nham "
If can = 9 Then can = "Quy "
'Tinh chi
chi = (Year(Now()) + 8) Mod 12
If chi = 0 Then can = "Ti"
If chi = 1 Then can = "Suu"
If chi = 2 Then can = "Dan"
If chi = 3 Then can = "Mao"
If chi = 4 Then can = "Thin"
If chi = 5 Then can = "Ty"
If chi = 6 Then can = "Ngo"
If chi = 7 Then can = "Mui"
If chi = 8 Then can = "Than"
If chi = 9 Then can = "Dau"
If chi = 10 Then can = "Tuat"
If chi = 11 Then can = "Hoi"
'Tinh nam am lich
AL = can & chi
End Sub
 
Lần chỉnh sửa cuối:
Bạn sửa 1 chút:

Mã:
Sub namAL()
'Khai bao bien
Dim chi, can, AL As String
'Tinh can
can = (Year(Now()) + 6) Mod 10
If can = 0 Then can = "Giap "
If can = 1 Then can = "At "
If can = 2 Then can = "Binh "
If can = 3 Then can = "Dinh "
If can = 4 Then can = "Mau "
If can = 5 Then can = "Ky "
If can = 6 Then can = "Canh "
If can = 7 Then can = "Tan "
If can = 8 Then can = "Nham "
If can = 9 Then can = "Quy "
'Tinh chi
chi = (Year(Now()) + 8) Mod 12
If chi = 0 Then chi = "Ti"
If chi = 1 Then chi = "Suu"
If chi = 2 Then chi = "Dan"
If chi = 3 Then chi = "Mao"
If chi = 4 Then chi = "Thin"
If chi = 5 Then chi = "Ty"
If chi = 6 Then chi = "Ngo"
If chi = 7 Then chi = "Mui"
If chi = 8 Then chi = "Than"
If chi = 9 Then chi = "Dau"
If chi = 10 Then chi = "Tuat"
If chi = 11 Then chi = "Hoi"
'Tinh nam am lich
AL = can & chi
MsgBox AL
End Sub
 
Theo mình viết như sau gọn hơn

Mã:
Sub namAL()
Dim chi(), can(), AL As String
can = Array("Giap ", "At ", "Binh ", "Dinh ", "Mau ", "Ky ", "Canh ", "Tan ", "Nham ", "Quy ")
chi = Array("Ti", "Suu", "Dan", "Mao", "Thin", "Ty", "Ngo", "Mui", "Than", "Dau", "Tuat", "Hoi")
AL = can((Year(Now()) + 6) Mod 10) & chi((Year(Now()) + 8) Mod 12)
MsgBox AL
End Sub

Hoặc có thể dùng hàm Choose thay mảng, chứ bạn dùng hàng chục cái if mệt quá.
 
Lần chỉnh sửa cuối:
Cám ơn bạn rất nhiều. Tôi mới tìm hiểu về Access và cũng không rành về lập trình nên mong bạn giúp đỡ nhiều. Tiện đây nhờ bạn cũng giúp tôi giải đáp một số thắc mắc luôn nhé.
- Tôi muốn sử dụng thủ tục trên để thực hiện đổi các năm sinh dương lịch nhập vào ra năm sinh âm lịch và hiện ra trên form và report. Tôi cần làm như thế nào?
2/Trong form của tôi có 1 form chính và 1 form con. Nếu tôi muốn thao tác đến form con thì làm như thế nào? (Giả sử khi nhấn nút xóa thì sẽ xóa các bảng ghi trong form con. Tôi đã thực hiện xóa nhưng chỉ xóa được dữ liệu trong form chính. Khi mở CSDL ra thì dữ liệu trong form con vẫn còn)
 
1/Để hiện trên form hay report bạn có thể làm như sau:
+Đổi thủ tục thành hàm:
Mã:
Function namAL(Yr as integer)
Dim chi(), can()
can = Array("Giap ", "At ", "Binh ", "Dinh ", "Mau ", "Ky ", "Canh ", "Tan ", "Nham ", "Quy ")
chi = Array("Ti", "Suu", "Dan", "Mao", "Thin", "Ty", "Ngo", "Mui", "Than", "Dau", "Tuat", "Hoi")
namAL = can((Yr + 6) Mod 10) & chi(Yr + 8) Mod 12)
End Sub

+Dùng Textbox để hiển thị dạng Unbound và nhâp vào ControlSource =namAL(Nam_nao)

2/Để xoá dữ liệu có 2 dạng:
+Nếu Unbound thì gán contr. =0 hay Null. Ngược lại xoá dữ liệu nguồn rồi Requery lại dữ liệu
 
Cơ sở dữ liệu

Trong đề tài: Đổi năm DL sang năm AL, các anh chị dùng Code mình nghĩ là rất hay mặc dù chưa biết về Code, còn mình dùng công thức hàm excel để chuyển đổi qua lại giữa năm DL và năm AL. Mời các bạn cùng và góp ý theo File đính kèm nhé!
 

File đính kèm

Theo bài viết của bạn thì chỉ cần nhập năm sinh bất kỳ là ta có thể biết được năm đó thuộc CAN -CHI gì.
Vậy bây giờ tôi muốn biết năm đó thuộc mệnh( mạng: kim-mộc-thuỷ-hoả-thổ) gì thì làm thế nào?
Xin bạn htv3 cùng những ai am hiểu và quan tâm đến vấn đề này chỉ giúp.
Xin trân trọng cảm ơn!!!
 
Theo bài viết của bạn thì chỉ cần nhập năm sinh bất kỳ là ta có thể biết được năm đó thuộc CAN -CHI gì.
Vậy bây giờ tôi muốn biết năm đó thuộc mệnh( mạng: kim-mộc-thuỷ-hoả-thổ) gì thì làm thế nào?
Xin bạn htv3 cùng những ai am hiểu và quan tâm đến vấn đề này chỉ giúp.
Xin trân trọng cảm ơn!!!
Bắt excel tính toán, dò tìm làm chi? Bạn có thế GOOGLE.COM mà search, sẽ cho bạn đầy đủ thông tin. Hehe
(Hình như mệnh bạn là Đại Khê Thủy? hihi )
 
Điều bạn nói thì quá đơn giản, nhưng mình muốn biết quy luật của ngũ hành: Kim- mộc-thuỷ -hoả-thổ chúng vận động như thế nào theo năm tháng.
Rất mong nhận được hồi âm của mọi người!!!
 
Quy luật là "Thủy - Hỏa - Thổ -Mộc -Kim" theo tuổi Địa chi luân hồi chiến. Ví dụ : năm 1974 là Dần (Thủy) thì 1986 Dần tiếp là Hỏa, tiếp 1998 Dần Thổ - 2010 - Dần Mộc ....vvv. Các con vật khác cũng có quy luật tương tự.

Xin góp chút ý kiến nhỏ !
 
Web KT

Bài viết mới nhất

Back
Top Bottom