MsgBox CDate("39.12.20")
sonuç 20.12.1939 çıkıyor
evet her ikisi de tarih görüyor ama şöyle yazarsam
MsgBox CDate("39.12.20")
sonuç 20.12.1939 çıkıyor
Function isTarih() As Boolean
On Error GoTo Err_hata
Dim result As Boolean
Dim str As String
str = Day(CLng(DateSerial(Year("39.12.20"), Month("39.12.20") + 1, 1) - 1))
result = True
Exit_kod:
isTarih = result
Exit Function
Err_hata:
result = False
MsgBox Err.Description
Resume Exit_kod
End Function
(12/03/2020, 12:27)accessman yazdı:Diyecek bir kelime bulamıyorum size.Function isTarih() As Boolean
On Error GoTo Err_hata
Dim result As Boolean
Dim str As String
str = Day(CLng(DateSerial(Year("39.12.20"), Month("39.12.20") + 1, 1) - 1))
result = True
Exit_kod:
isTarih = result
Exit Function
Err_hata:
result = False
MsgBox Err.Description
Resume Exit_kod
End Function
Private Function isTarih(metin0 As TextBox) As Boolean
On Error GoTo son
With metin0
If .Value = "" Then GoTo enson
Dim tarih As Variant, trh As Date, eom As Long, deger As String
.Value = Replace(.Value, " ", ".")
.Value = Replace(.Value, "/", ".")
tarih = Split(.Value, ".")
If Len(tarih(0)) = 1 Then tarih(0) = "0" & tarih(0)
If Len(tarih(1)) = 1 Then tarih(1) = "0" & tarih(1)
deger = tarih(0) & "." & tarih(1) & "." & tarih(2)
If Not deger Like "##.##.####" Then
MsgBox "Tarih bilgisi ""gg.aa.yyyy"" şeklinde girilmelidir.", vbCritical, "HATA"
.SetFocus
GoTo var
Else
trh = DateSerial(tarih(2), tarih(1), 1)
eom = Day(CLng(DateSerial(Year(trh), Month(trh) + 1, 1) - 1))
If Val(tarih(0)) > eom Then
GoTo son
.SetFocus
End If
If tarih(1) > 12 Then
GoTo son
.SetFocus
End If
End If
MsgBox "Tarih Format Dogru...", vbInformation, "Bilgi"
var:
eom = Empty
trh = Empty
deger = Empty
Erase tarih
Exit Function
son:
.SetFocus
MsgBox "Hatali Tarih...", vbCritical, "Hata"
Cancel = True
Exit Function
enson:
End With
End Function