37
ห้อง MS Access / : ไม่ให้แสดงคำว่า Error ใน Query
« เมื่อ: 01 ก.ย. 64 , 16:49:37 »
แก้ไขโค้ดในการตัด กรณี อายุแค่ 1 วัน ก็ให้แสดงว่า 1 วัน ไม่ใช่ 0 ปี 0 เดือน 1 วัน
โค๊ด: [Select]
Public Function CalAge(FieldDateOfBirth) As String
Dim DayOfBirth As String
Dim MonthOfBirth As String
Dim YearOfBirth As String
If IsNull(FieldDateOfBirth) Then
CalAge = ""
Else
DayOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date) - 1, [FieldDateOfBirth]), Date), DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date))
MonthOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, (DateDiff("m", [FieldDateOfBirth], Date) - 1) Mod 12, DateDiff("m", [FieldDateOfBirth], Date) Mod 12)
YearOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, (DateDiff("m", [FieldDateOfBirth], Date) - 1) \ 12, DateDiff("m", [FieldDateOfBirth], Date) \ 12)
CalAge = IIf(Left(YearOfBirth, 1) = 0, "", YearOfBirth & "ปี ") & IIf(Left(MonthOfBirth, 1) = 0, "", MonthOfBirth & "เดือน ") & IIf(Left(DayOfBirth, 1) = 0, "", DayOfBirth & "วัน")
End If
End Function
Public Function CalDay(FieldDateOfBirth) As String
Dim DayOfBirth As String
If IsNull(FieldDateOfBirth) Then
CalDay = ""
Else
DayOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date) - 1, [FieldDateOfBirth]), Date), DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date))
CalDay = DayOfBirth & " วัน "
End If
End Function
Public Function CalMonth(FieldDateOfBirth) As String
Dim MonthOfBirth As String
If IsNull(FieldDateOfBirth) Then
CalMonth = ""
Else
MonthOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, (DateDiff("m", [FieldDateOfBirth], Date) - 1) Mod 12, DateDiff("m", [FieldDateOfBirth], Date) Mod 12)
CalMonth = MonthOfBirth & " เดือน "
End If
End Function
Public Function CalYear(FieldDateOfBirth) As String
Dim YearOfBirth As String
If IsNull(FieldDateOfBirth) Then
CalYear = ""
Else
YearOfBirth = IIf(DateDiff("d", DateAdd("m", DateDiff("m", [FieldDateOfBirth], Date), [FieldDateOfBirth]), Date) < 0, (DateDiff("m", [FieldDateOfBirth], Date) - 1) \ 12, DateDiff("m", [FieldDateOfBirth], Date) \ 12)
CalYear = YearOfBirth & " ปี "
End If
End Function