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

1 2 3
24/03/2021, 12:14

yturan

(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.
24/03/2021, 12:56

berduş

@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
24/03/2021, 14:20

yturan

(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?
24/03/2021, 14:23

berduş

Mesajın 2. satirinda yaziyor aslında)
Alt formunuzu tasarım modunda açıp oraya eklemelisiniz
24/03/2021, 14:25

yturan

(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ı?
24/03/2021, 14:28

berduş

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
1 2 3