AccessTr.neT

Tam Versiyon: SetFilter ve ApplyFilter Arasındaki Fark Nedir?
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Herkese Merhaba,

Access 2013'te bir proje geliştirdim.
Command Button arkasındaki koda DoCmd.SetFilter komutu yazdım. Çalıştı.

Projeyi Access 2007'de çalıştırmak istedim.
Aynı kod hata verdi.
Bu sefer de kodu Access 2007 için DoCmd.ApplyFilter olarak değiştirdim. Çalıştı.

Sorum şu; SetFilter ile ApplyFilter arasındaki fark nedir?
Tek (ortak) kodla bu işi çözemez miyim?

Yapmak istediğim işlem sırasıyla;
Tüm kayıtları göstermesi ve ardından Form üzerindeki alanlardaki verilere göre datayı filtre etmesi.


Teşekkürler.
Sayın aliyuzen,

Bahsettiğiniz bilgi talebinize yönelik olarak,aşağıdaki kısa bilgilendirme paylaşımın yapılması uygun görülmüştür.

DoCmd.SetFilter kod ifadesi 2010 ve üzeri sürümlerde kullanılmaktadır.

DoCmd.ApplyFilter kod ifadesi de,belirtilen sürümlerin dışında kalan alt sürümlerde geçerlidir.

Bu nedenden dolayı farklı sürümlerde farklı kullanım durumları söz konusudur.

son olarak,alternatif bir kullanım olması adına;örneğin bir ad alanının Güncelleştirme Sonrasında Olay Yordamı içerisine aşağıdaki kodun yazılması gibi

Kod:
If IsNull(Me.ad_alan_adi) Then

   Me.FilterOn = False
Else
  Me.Filter = "[ad_alan_adi] Like " & Chr(34) & Me.ad_alaninin_yazildigi_metin_kutusu_adi & "*" & Chr(34)
  Me.FilterOn = True
End If

şeklinde ya da benzer nitelikte bir kodlama ile de çalışma sağlanabilir.bu husus da araştırıp,kullanımı hakkında bilgiler edinebilirsiniz.bilginize...İyi çalışmalar,saygılar.
(07/07/2015, 18:30)atoz112 yazdı: [ -> ]Sayın aliyuzen,

Bahsettiğiniz bilgi talebinize yönelik olarak,aşağıdaki kısa bilgilendirme paylaşımın yapılması uygun görülmüştür.

DoCmd.SetFilter kod ifadesi 2010 ve üzeri sürümlerde kullanılmaktadır.

DoCmd.ApplyFilter kod ifadesi de,belirtilen sürümlerin dışında kalan alt sürümlerde geçerlidir.

Bu nedenden dolayı farklı sürümlerde farklı kullanım durumları söz konusudur.

son olarak,alternatif bir kullanım olması adına;örneğin bir ad alanının Güncelleştirme Sonrasında Olay Yordamı içerisine aşağıdaki kodun yazılması gibi


Kod:
If IsNull(Me.ad_alan_adi) Then

   Me.FilterOn = False
Else
  Me.Filter = "[ad_alan_adi] Like " & Chr(34) & Me.ad_alaninin_yazildigi_metin_kutusu_adi & "*" & Chr(34)
  Me.FilterOn = True
End If

şeklinde ya da benzer nitelikte bir kodlama ile de çalışma sağlanabilir.bu husus da araştırıp,kullanımı hakkında bilgiler edinebilirsiniz.bilginize...İyi çalışmalar,saygılar.


Sn atoz112,
Acaba, Access içinde versiyonu bulan bir kod var mı? Bildiğim kadarıyla, excelde var.
Şayet, Access içinde verisoyonu döndüren bir komut varsa, if deyimi ile;

2007 ise ApplyFilter
değilse, SetFilter kullanabilir miyim?

Teşekkürler.
Sayın aliyuzen,

EK'te;
bahsettiğiniz Access Versiyonunu öğrenme talebinize yönelik olarak hazırlanmış örnek uygulama mevcuttur.

içeriğinde 4 farklı şekilde versiyon bulma anlatımını gösteren örnek formlar var.inceleyebilirsiniz.kullanım tercihi ve takdiri sizindir.bilginize.
 
iyi çalışmalar,
saygılar.
Teşekkür ederim.