Merhaba.
Ofisimize gelen tebligatları tuttuğum sistemde gelen evrakla ilgili yapılması gereken işlemin son gününü işlediğim bir bölüm var.
Bunu manuel olarak kendim yazıyorum.
Ekte sunduğum örnekte "2 hafta ekle" butonuna tıkladığımda tebliğ tarihi alanındaki değere 2 haftalık süre ekleyerek son işlem tarihi bölümüne yazmasını istiyorum. Normalde bunu yapabiliyorum ama sıkıntılı olan kısım şurası:
Tebliğ tarihine 2 haftalık süre eklediğimizde son işlem tarihi hafta sonu tatil gününe, yani cumartesi veya pazara denk geldiğinde sistemin otomatik olarak ilk pazartesi gününü yazmasını istiyorum.
Bu konuyla ilgili yardımınızı rica ederim.
Merhabalar,
Uygulamanız içerisine önce tarih gün kontrolü yapacak fonksiyon eklemek gerekiyor. Bunu için bir modül ekleyin ve içine
Kod:
Option Compare Database
Function AddDaysAndAdjust(startDate As Date) As Date
Dim newDate As Date
newDate = DateAdd("d", 14, startDate)
Dim dayOfWeek As Integer
dayOfWeek = Weekday(newDate, vbMonday)
If dayOfWeek = 6 Then
newDate = DateAdd("d", 2, newDate)
ElseIf dayOfWeek = 7 Then
newDate = DateAdd("d", 1, newDate)
End If
AddDaysAndAdjust = newDate
End Function
Sonrasında kullandığınız butonun olay yordamına kodu ekleyin.
Kod:
Private Sub buton_2_hafta_ekle_Click()
Dim originalDate As Date
Dim adjustedDate As Date
originalDate = Me.teblig_tarihi.Value
adjustedDate = AddDaysAndAdjust(originalDate)
Me.son_sure.Value = adjustedDate
End Sub
Sonucu olumlu ya da olumsuz bildirin.
iyi günler
alternatif olarak
buton_2_hafta_ekle tıklama olayını aşağıdaki gibi düzenleyip dener misiniz?
Private Sub buton_2_hafta_ekle_Click()
x = teblig_tarihi
son_sure = IIf(x Mod 7 < 2, x + 14 + 2 - (x Mod 7), x + 14)
End Sub
(14/04/2025, 11:11)boolean_ yazdı: [ -> ]Merhabalar,
Uygulamanız içerisine önce tarih gün kontrolü yapacak fonksiyon eklemek gerekiyor. Bunu için bir modül ekleyin ve içine Kod:
Option Compare Database
Function AddDaysAndAdjust(startDate As Date) As Date
Dim newDate As Date
newDate = DateAdd("d", 14, startDate)
Dim dayOfWeek As Integer
dayOfWeek = Weekday(newDate, vbMonday)
If dayOfWeek = 6 Then
newDate = DateAdd("d", 2, newDate)
ElseIf dayOfWeek = 7 Then
newDate = DateAdd("d", 1, newDate)
End If
AddDaysAndAdjust = newDate
End Function
Sonrasında kullandığınız butonun olay yordamına kodu ekleyin. Kod:
Private Sub buton_2_hafta_ekle_Click()
Dim originalDate As Date
Dim adjustedDate As Date
originalDate = Me.teblig_tarihi.Value
adjustedDate = AddDaysAndAdjust(originalDate)
Me.son_sure.Value = adjustedDate
End Sub
Sonucu olumlu ya da olumsuz bildirin.
iyi günler
Yazılanları yaptım. Buton çalıştı. Sorun yok ancak formu kaydederken aldığım uyarı:
bu form veya rapor geçerli ver,tabanı biçimi ile uygun olmayan değişiklikler içeriyor ....
Değişikliklerinizi kaydetmeniz için içinde boş hücreler bulunan düzenleri kaldırmanız ve/veya formun veya raporun hasmodule özelliğini no olarak ayarlamanız gerekir.
(14/04/2025, 11:39)berduş yazdı: [ -> ]alternatif olarak buton_2_hafta_ekle tıklama olayını aşağıdaki gibi düzenleyip dener misiniz?
Private Sub buton_2_hafta_ekle_Click()
x = teblig_tarihi
son_sure = IIf(x Mod 7 < 2, x + 14 + 2 - (x Mod 7), x + 14)
End Sub
Hocam bu daha pratik oldu. İlave modulsüz olarak da çalıştı, teşekkür ederim.
Rica ederim iyi çalışmalar)