Skip to main content

AccessTr.neT


2'inci Girilen Tarih, Bir Önceki Tarihe Eşit Ve Küçük Olursa Hata Vermeli

2'inci Girilen Tarih, Bir Önceki Tarihe Eşit Ve Küçük Olursa Hata Vermeli

#7
(24/03/2021, 12:10)atoykan yazdı: Kod ile zorlanıyorum derseniz formunuzda ilgili alanın geçerlilik kuralını ve geçerlilik metnini de kullanabilirsiniz.
Geçerlilik kuralı alanına [Senet Tarihi_2]>[Senet Tarihi_1] Geçerlilik Metni alanına da uyarı mesajınızı yazabilirsiniz.

Çok teşekkür ederim. Bu dediğiniz şekilde şekilde yapabiliyorum.
Cevapla
#8
@atoykan hocama ilaveten aşağıdaki kodlar da denenebilir
Kodlar altforma eklenecek
Private Sub Form_Open(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me
    If ctl.Name Like "Senet Tarihi_*" Then ctl.OnExit = "=TrkKont([" & ctl.Name & "])"
Next ctl

End Sub

Function TrkKont(ByRef ctl As Control)
xCtlNum = Mid(ctl.Name, 14)
If xCtlNum > 1 Then
    If ctl.Value <= Controls("Senet Tarihi_" & xCtlNum - 1).Value Then
        MsgBox ctl.Value & " tarihi " & Controls("Senet Tarihi_" & xCtlNum - 1).Value & "tarihinden küçük/eşit olamaz"
        ctl.Value = Null
        ctl.SetFocus
    End If
End If

If xCtlNum < 10 Then
    If ctl.Value >= Controls("Senet Tarihi_" & xCtlNum + 1).Value Then
        MsgBox ctl.Value & " tarihi " & Controls("Senet Tarihi_" & xCtlNum + 1).Value & "tarihinden büyük/eşit olamaz"
        ctl.Value = Null
        ctl.SetFocus
    End If
End If

End Function
Cevapla
#9
(24/03/2021, 12:56)berduş yazdı: @atoykan hocama ilaveten aşağıdaki kodlar da denenebilir
Kodlar altforma eklenecek
Private Sub Form_Open(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me
    If ctl.Name Like "Senet Tarihi_*" Then ctl.OnExit = "=TrkKont([" & ctl.Name & "])"
Next ctl

End Sub

Function TrkKont(ByRef ctl As Control)
xCtlNum = Mid(ctl.Name, 14)
If xCtlNum > 1 Then
    If ctl.Value <= Controls("Senet Tarihi_" & xCtlNum - 1).Value Then
        MsgBox ctl.Value & " tarihi " & Controls("Senet Tarihi_" & xCtlNum - 1).Value & "tarihinden küçük/eşit olamaz"
        ctl.Value = Null
        ctl.SetFocus
    End If
End If

If xCtlNum < 10 Then
    If ctl.Value >= Controls("Senet Tarihi_" & xCtlNum + 1).Value Then
        MsgBox ctl.Value & " tarihi " & Controls("Senet Tarihi_" & xCtlNum + 1).Value & "tarihinden büyük/eşit olamaz"
        ctl.Value = Null
        ctl.SetFocus
    End If
End If

End Function

BU KODLARI nereye yazacam hocam?
Cevapla
#10
Mesajın 2. satirinda yaziyor aslında)
Alt formunuzu tasarım modunda açıp oraya eklemelisiniz
Cevapla
#11
(24/03/2021, 14:23)berduş yazdı: Mesajın 2. satirinda yaziyor aslında)
Alt formunuzu tasarım modunda açıp oraya eklemelisiniz

Berduş hocam Alt Formun "Yüklendiğinde" Olay Yordamına mı?
Cevapla
#12
Alt formda yanılmıyorsam form_open olayı yoktu
Siz sadece her 2 kod bloğunu kopyalayıp Vba penceresinin en altına ekleyin

kod sayfasındaki son satırın hemen altına
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da