Merhaba arkadaşlar,
Ekte paylaştığım Access içerisinde görebileceğiniz plan tablosundan elde ettiğim planquery sorgusunda plandate1 alanına 7 gün ekleterek plandate3 alanı yarattım sorgu ile. Ancak ctesi ve pazarı kaldırarak sadece işgünü eklemesini sağlamak istiyorum. Bunu nasıl yapabiliriz?
Konu ile yardımlarını bekliyorum. Teşekkürler.
Örnek: plandate1 = 19.04.2021
plandate3 = 28.04.2021 olmalıdır.
Tarih Alanına İşgünü Nasıl Ekletebilirim?
soruyu tam olarak anlamadım
7 iş günü olacaksa ve bu 7 değeri sabitse doğrudan +9 yapsanız olmaz mı?
7 iş günü olacaksa ve bu 7 değeri sabitse doğrudan +9 yapsanız olmaz mı?
aşağıdaki kodu dener misiniz?
fonksiyon modüle eklenecek
fonksiyon modüle eklenecek
Function GunEkle(Trh As Date, GnEk As Long) As Date
GnSy = 0
Do While GnSy < GnEk
Trh = Trh + 1
If Trh Mod 7 > 1 Then GnSy = GnSy + 1
Loop
GunEkle = Trh
End Function
sorgudaki plandate3:GunEkle([plandate1],7) düzenlenmeli
aşağıdaki kod istenirse resmi tatilleri de devre dışı bırakır
eğer resmi tatil de hesaplanacaksa fonksiyon aşağıdaki gibi kullanılır
eğer resmi tatil de hesaplanacaksa fonksiyon aşağıdaki gibi kullanılır
GunEkle(Tarih , eklenecek gün)
eğer resmi tatil hesaplanmayacaksa fonksiyon aşağıdaki gibi kullanılırGunEkle(Tarih , eklenecek gün,false)
Function GunEkle(Trh As Date, GnEk As Long, Optional RsmTtl As Boolean = True) As Date
GnSy = 0
RsmGun = "0101;2304;0105;1905;1507;3008;2910"
Do While GnSy < GnEk
Trh = Trh + 1
HftSnTtl = IIf(Trh Mod 7 < 2, 1, 0)
RsmTtlE = InStr(RsmGun, Format(Trh, "ddmm"))
If RsmTtl = False Then RsmTtlE = 0
Ekle = HftSnTtl + RsmTtlE
If Ekle = 0 Then GnSy = GnSy + 1
Loop
GunEkle = Trh
End Function
Sayın Berdus,
çok teşekkür ederim. istediğim gibi bir sonuç veriyor. bununla bağlantılı olarak birkaç yerde okuduğum kullanıcı tanımlı Vba fonksiyonlarını sorgularda kullanmak performansın en büyük düşmanı diyordu. Sanırım kastettiği burada yaptığımız. Bu konudaki fikrinizi merak etmekteyim?
+9 hatalı sonuç veriyor. Çünkü 5 mart 2021 e örneğin +9 koyduğunuzda 14 mart pazar yapmakta.
Halbuki biz +7 iş günü ile 16 martı elde etmeliydik.
çok teşekkür ederim. istediğim gibi bir sonuç veriyor. bununla bağlantılı olarak birkaç yerde okuduğum kullanıcı tanımlı Vba fonksiyonlarını sorgularda kullanmak performansın en büyük düşmanı diyordu. Sanırım kastettiği burada yaptığımız. Bu konudaki fikrinizi merak etmekteyim?
(19/03/2021, 14:51)berduş yazdı: soruyu tam olarak anlamadım
7 iş günü olacaksa ve bu 7 değeri sabitse doğrudan +9 yapsanız olmaz mı?
+9 hatalı sonuç veriyor. Çünkü 5 mart 2021 e örneğin +9 koyduğunuzda 14 mart pazar yapmakta.
Halbuki biz +7 iş günü ile 16 martı elde etmeliydik.
Son Düzenleme: 20/03/2021, 19:31, Düzenleyen: ODRSCH26.
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.
ozaman şunu dener misiniz
yada
ozaman şunu dener misiniz
plandate3: Switch(([plandate1] Mod 7)=0;[plandate1]+9;([plandate1] Mod 7)=1;[plandate1]+8;([plandate1] Mod 7)>1;[plandate1]+7)
tamamen Access fonksiyonuyada
plandate3: IIf(([plandate1] Mod 7)<2;[plandate1]+9-([plandate1] Mod 7);[plandate1]+7)
Konuyu Okuyanlar: 1 Ziyaretçi