AccessTr.neT
String Tarih Formatında Mı Yazılmış - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: String Tarih Formatında Mı Yazılmış (/konu-string-tarih-formatinda-mi-yazilmis.html)

Sayfalar: 1 2 3 4 5 6 7 8 9


Cvp: String Tarih Formatında Mı Yazılmış - accessman - 12/03/2020

Tekrar özür dilerim dediğim gibi son hali o diye düşünmüştüm elbette kullanacağım


Cvp: String Tarih Formatında Mı Yazılmış - feraz - 12/03/2020

Özür kabul edildi üstad Img-grinBiraz acele oldu zamanım kalmadı bir deneyin diyeceğim ama mualla.
Kullanım
Private Sub Komut2_Click()
    If isTarih(Metin0) = False Then
        MsgBox "Hatali"
    Else
        MsgBox "Dogru"
    End If
 
End Sub


Kod;
Private Function isTarih(metinTextbox As TextBox) As Boolean
   
    With metinTextbox
   
    isTarih = False
   
        If .Value = "" Or IsNull(.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
                isTarih = False
'                MsgBox metinTextbox.Name & " 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
        isTarih = True
'        MsgBox metinTextbox.Name & " Tarih Format Dogru...", vbInformation, "Bilgi"
       
var:
    eom = Empty
    trh = Empty
    deger = Empty
    Erase tarih
    Exit Function

son:
  isTarih = False
    eom = Empty
    trh = Empty
    deger = Empty
    Erase tarih
    .SetFocus
'    MsgBox metinTextbox.Name & " Hatali Tarih...", vbCritical, "Hata"
    Cancel = True
enson:
  isTarih = False
    End With

End Function



Cvp: String Tarih Formatında Mı Yazılmış - accessman - 12/03/2020

ellerine sağlık çok güzel çalışıyor


Cvp: String Tarih Formatında Mı Yazılmış - feraz - 12/03/2020

Rica ederim abey kolay gelsin.


Cvp: String Tarih Formatında Mı Yazılmış - feraz - 12/03/2020

(12/03/2020, 12:59)feraz yazdı: Özür kabul edildi üstad Img-grinBiraz acele oldu zamanım kalmadı bir deneyin diyeceğim ama mualla.
Kullanım
Private Sub Komut2_Click()
    If isTarih(Metin0) = False Then
        MsgBox "Hatali"
    Else
        MsgBox "Dogru"
    End If
 
End Sub


Kod;
Private Function isTarih(metinTextbox As TextBox) As Boolean
   
    With metinTextbox
   
    isTarih = False
   
        If .Value = "" Or IsNull(.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
                isTarih = False
'                MsgBox metinTextbox.Name & " 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
        isTarih = True
'        MsgBox metinTextbox.Name & " Tarih Format Dogru...", vbInformation, "Bilgi"
       
var:
    eom = Empty
    trh = Empty
    deger = Empty
    Erase tarih
    Exit Function

son:
  isTarih = False
    eom = Empty
    trh = Empty
    deger = Empty
    Erase tarih
    .SetFocus
'    MsgBox metinTextbox.Name & " Hatali Tarih...", vbCritical, "Hata"
    Cancel = True
enson:
  isTarih = False
    End With

End Function


eom = Day(CLng(DateSerial(Year(trh), Month(trh) + 1, 1) - 1))

Yukarıdakinin yerine alttaki gibide oluyormuş denemedim lakin internette gezinirken gördüm.
Bu ilgili ayın son gününü buluyor 


eom = Day(CLng(DateSerial(Year(trh), Month(trh) + 1, 0) ))