استفاده از این تابع برای تکمیل تاریخهای ناکامل مثل 139011 که منظور 13900101 می باشد ویا 1390221 ویا ... می تواند مورد استفاده قرار گیرد دوستان تست کنند تا اگر اشکالی بود متفقا مرتفع کنیم. اگر خروجی صفر باشد تاریخ نامعتبر خواهد بود
Public Function FixUncompeleteDate(ByVal fDate As Long) As Long
Dim date1 As String, date2 As Long
date1 = CStr(fDate)
If Len(date1) < 6 Then
Exit Function
End If
date2 = CLng(Left(date1, 4))
If Len(date1) = 6 Then
date2 = CLng(date2 & 0 & Mid(date1, 5, 1) & 0 & Right(date1, 1))
ElseIf Len(date1) = 7 Then
If Right(date1, 1) > 3 Then
date2 = CLng(date2 & Mid(date1, 5, 2) & Right(date1, 2))
ElseIf Mid(date1, 6, 1) > 3 Then
date2 = CLng(date2 & Mid(date1, 5, 2) & 0 & Right(date1, 1))
ElseIf Mid(date1, 5, 1) > 1 Or Right(date1, 1) = 0 Then
date2 = CLng(date2 & 0 & Mid(date1, 5, 1) & Right(date1, 2))
Else
date2 = CLng(date2 & Mid(date1, 5, 2) & 0 & Right(date1, 1))
End If
End If
If ValidDate(date2) = False Then Exit Function
FixUncompeleteDate = date2
End Function