Formda Filtreleme

1 2
10/06/2024, 23:06

evren89

iyi geceler

ekte ki çalışmamda form üzerinde filtreleme yapmaktayım. Bit_Tarihi güncelleme sonrası olayına Me.Filter = "[Giris_Tarihi] <= #" & Month(Me.Bit_Tarihi) & "/" & Day(Me.Bit_Tarihi) & "/" & Year(Me.Bit_Tarihi) & "# and [Cikis_Tarihi] >=#" & Month(Me.Bas_Tarihi) & "/" & Day(Me.Bas_Tarihi) & "/" & Year(Me.Bas_Tarihi)"# or [Cikis_Tarihi] ="")
Me.FilterOn = True

diye kod girdim.

yapmak istediğim şu Giris_Tarihi Bit_Tarihinden küçük veya eşitse Cikis_Tarihi Bas_Tarihinden büyük veya eşit veya boş sa diye koşullu filtremeye yapmaya çalışıyorum

yardımlarınız tesekkurler
10/06/2024, 23:57

onur_can

iyi geceler,
bu gibi koşullu durumlarda iif karşılaştırma komutunu kullanabilirsiniz, ya da if ... then... else veyahut da select case ... end select gibi komutlarıda kullanabilirsiniz.
durumunuza şu anda en uygunu iç içe IIF komutunu kullanmaktır. IIF komutunun söz dizimi aşağıdaki gibidir.
Kod:
iif ("ifade";"ifade doğru olduğunda yapılacak eylem";"ifade yanlış olduğunda yapılacak eylem")
şeklindedir. Buna göre
Kod:
= iif([Giriş Tarihi]>=[Bitiş Tarihi];"Yapılacak Eylem";"Yapılacak Eylem")
= iif([Giriş Tarihi]>=[Bitiş Tarihi];iif([Çıkış Tarihi]>=[Başlama Tarihi];Yapılacak Eylem");"Yapılacak Eylem")
11/06/2024, 09:08

evren89

Hocam Me.Filter = "IIf([Giris_Tarihi] <= #" & [Bit_Tarihi] & "# and IIf([Cikis_Tarihi] >=#" & [Bas_Tarihi] & "#"
şöyle denedim ama yapamadım siz bana uygulamalı olarak gösterir misiniz.
11/06/2024, 09:24

onur_can

Merhaba,
Yapmak istediğinizi biraz daha netleştirelim.
Öncelikle şartımız nedir? şartımız birden fazla mıdır?
Şartlarımızı ayrı ayrı bir yazalım, Daha sonra Örneğin, 1.Şartımız doğru olduğunda Ne olacak?, Yanlış olduğunda ne olacak?
Aynı şekilde 2. Şartımız doğru olduğunda ne olacak?, Yanlış olduğunda ne olacak?, 2 şartımızın da doğru olmadığında ne olacak?
Yukarıda vermiş olduğunuz ifade eksik kalmış? Bu şekilde metinsel olarak yazarsanız ifademizi oluşturup daha hızlı sonuca ulaşabiliriz.
11/06/2024, 10:05

evren89

Me.Filter = "[Giris_Tarihi] <= #" & Month(Me.Bit_Tarihi) & "/" & Day(Me.Bit_Tarihi) & "/" & Year(Me.Bit_Tarihi) & "# and [Cikis_Tarihi] >="" #" & Month(Me.Bas_Tarihi) & "/" & Day(Me.Bas_Tarihi) & "/" & Year(Me.Bas_Tarihi) & "#"
Me.FilterOn = True

hocam tam yapmak istediğim bu aslında yani çıkış tarihi bas_tarihinden büyüktür ya da eşitse ya da içi boşsa diye yapmak istiyorum
11/06/2024, 11:50

onur_can

Kod:
=IIf([çıkıştarihiTarihi]>=[başlamatarihi];IIf(IsNull([başlamatarihi];IIf(IsNull([çıkıştarihi]);.......)))
1 2