(20/03/2021, 19:31)berduş yazdı: Evet maalesef burada yaptığımız kullanıcı tanımlı fonksiyon ama sorguda kullanabileceğimiz bu işi yapabilecek accesse ait bir fonksiyon var mı bilmiyorum.
Aslına bakarsanız sizin +9 koyma fikrinizden yola çıkarak sadece sorgu tarafında yapabilir miyiz?
+9 fikri ptesi salı çarşamba gününe +9 koyuyorsak +7 iş günü ile aynı güne tekabul ediyor. Ancak perşembe ve cuma günü işi bozuyor. Sorgu da eğer sayı eklenen tarih perşembe ise +11, cuma ise +12 koy gerisinde +9 koy diyebilir miyiz acaba?
Bunu yapabilirsek kullanıcı tanımlı
Vba fonksiyonu kullanmamıza gerek kalmaz.
(20/03/2021, 20:36)berduş yazdı: yada
plandate3: IIf(([plandate1] Mod 7)<2;[plandate1]+9-([plandate1] Mod 7);[plandate1]+7)
Sayın Berdus,
2 sorgu fonksiyonunda da direk olarak 7 gün eklemektedir. İş günü mantığı ile eklemedi maalesef.
Kendi denemelerimde doğru sonuç vermişti
Hangi tarihleri girdiniz
Hangi sonucu verdi
Ne olmalıydı
Bir kaç tarih verirseniz deneyip çözmeye calisirim
(20/03/2021, 23:48)berduş yazdı: Kendi denemelerimde doğru sonuç vermişti
Hangi tarihleri girdiniz
Hangi sonucu verdi
Ne olmalıydı
Bir kaç tarih verirseniz deneyip çözmeye calisirim
plandate1 26.02.2021 iken 5.03.2021 (09.03.21 olmalıydı)
25.02.2021 iken 4.03.2021 (08.03.2021 olmalıydı)
1.02.2021 iken 8.02.2021 (10.02.2021 olmalıydı)
tarihlerini verdi. Yani hepsinde +7 ekledi direk olarak. 2 sorgunuzu da denedim sonuç aynı.
kusura bakmayın galiba bir yerde hesap hatası yapmışım
access fonksiyonları ile oluşturamadım
ama gün sabit olduğundan fonksiyonu ona göre yeniden düzenledim
Function GunEkle(Trh As Date) As Date
GnSy = 0
Do While GnSy < 7
Trh = Trh + 1
If Trh Mod 7 > 1 Then GnSy = GnSy + 1
Loop
GunEkle = Trh
End Function
sorgudaki
plandate3:GunEkle([plandate1]) şeklinde düzenlenmeli
Not:
Access fonksiyonlarıyla olur mu diye araştırmaya devam ederim
aşağıdaki 3 fonksiyonu dener misiniz?
hangisini tercih ederseniz...
henüz hız testi yapmadım 4 yöntemden hangisi daha hızlı bilmiyorum
deneyince akşama doğru yazarım
1. yöntem
Chose7: Choose(([plandate1] Mod 7)+1;[plandate1]+10;[plandate1]+9;[plandate1]+9;[plandate1]+9;[plandate1]+9;[plandate1]+11;[plandate1]+11)
2. yöntem
IIF7: IIf([plandate1] Mod 7=0;[plandate1]+10;IIf([plandate1] Mod 7>4;[plandate1]+11;[plandate1]+9))
3. yöntem
Switch7: Switch([plandate1] Mod 7=0;[plandate1]+10;[plandate1] Mod 7>4;[plandate1]+11;[plandate1] Mod 7<5 And [plandate1] Mod 7>0;[plandate1]+9)