Merhaba.. 
Hatırlarsanız, son bölümde arama kutusuna yazdığımız her harfin sonrasında listedeki İsim alanının, oluşan bu harf kümesine göre mütemadiyen filtrelenmesi işlemini yapmıştık..
Şimdi bu sistemi daha da geliştirelim ve bir tek alanı değil, birden fazla alanı seçim yaparak filtreleyelim..
Şimdi üzerinde listemizin ve onu filtrelememize yardımcı olacak metin kutumuzun olduğu formumuzu tasarım görünümünde açalım.. Sonrasında Araç Kutusundan Seçenek Grubu seçelim..
Bu seçenek grubu yardımı ile filtrelemek istediğimiz alanların seçimini yapacağız..
Evet, Araç Kutusundaki Seçenek Grubuna tıkladık ve Denetim Sihirbazının karşımıza çıkarttığı ilk ekrana filtrelemek istediğimiz alanları tanımlayacak isimleri yazalım..
Varsayılan seçimi, en sık arama yapacağımız alan olacağını düşündüğümüz İsim olarak belirleyelim..
Burada, seçtiğimiz alan hangisi ise onun karşılığında alacağı değeri belirliyoruz.. Bu değeri daha sonra sorguda şart olarak kullanacağız.. Sayı olması tercihtir..
Sonraki pencerede seçenek grubumuzun biçimini özelleştiriyoruz..
Bu pencerede de seçenek kutumuza isim veriyoruz.. Hızlı Arama diyelim
Son deyip formumuzun uygun bir yerine konuşlandıralım..
Şimdi Seçenek Grubumuz hazır. Bundan sonra yapmamız gereken 7. Bölümde yaptıklarımıza benzer..:
Forma bir tane daha metin kutusu(metin5) ekliyoruz ve Biçim / Görünür Özelliğini Hayır olarak değiştiriyoruz.. Hemen ardından arama yaptıracağımız metin kutusunun(metin1) Olay / Değiştiğinde yordamına, yazdığımız harfleri sorgumuza kriter olarak göstereceğimiz görünmez metin kutumuza aktaracak ve sonrasında listemizi yeniden sorgulayacak olan şu kodu yazıyoruz..:
Formumuz artık hazır sayılır.. Şimdi sırada listemize kaynak gösterdiğimiz sorgumuzu yapmak istediğimiz filtrelemeye göre hazırlamak var..
Sorgumuza şöyle bir kriter yazmalıyız; demeliyiz ki..:
Arama-filtreleme kutusuna yazdığım her kelime sonrasında seçenek grubunda İsim seçiliyse İsim alanında, Departman seçili ise Departman alanında, İl seçili ise İller alanında arama-filtreleme yap..
Peki bunu nasıl yapacağız? Elimizde bir tane arama kutusu var ama oluşan kriteri atayacağımız üç ayrı alan var. Seçeneğe göre kutuyu bir o alanın bir bu alanın ölçütüne koyamayacağımıza göre farklı bir yol uygulamamız gerek..
Seçenek grubunu oluştururken atadığımız değerler işte burada işe yarayacak..
Hemen sorgumuzdaki boş bir alana gidelim ve şu mantıkta bir deyim yazalım..
Bu alanda, seçenek grubunda İsim seçiliyse İsim, Departman seçili ise Departman, İl seçili ise İller alanının verilerini göster..
Bunu mantığı SQLe çevirmek için daha önceki bölümlerde olduğu gibi iç içe IIF fonksiyonunu da kullanabiliriz ama burada aynı amaçla kullanabileceğimiz ve kullanımı iç içe IIF kullanmaktan daha kolay olan Switch fonksiyonundan faydalanıp deyimi şu şekilde oluşturalım..
Dikkatli bakınca seçenek grubunu oluştururken belirlediğimiz sayısal değerleri yukarıdaki küme içinde kullandığımızı göreceksiniz..
Artık formdaki seçeneğe göre filtre uygulayacağımız alanımızı oluşturmuştuk olduk.. Hemen Ölçüt bölümüne hazırlanışını önceki konularda işlediğimiz Like işleci ile oluşturduğumuz kriterimizi yazalım..
Sorgumuzu artık tüm şartlara göre hazırlamış olduk..
Şimdi formumuzu yeniden tasarım görünümünde açalım ve yeni bir arama için kutuyu boşaltacak bir düzenek yapalım..
Formun üstüne bir düğme koyalım ve Tıklandığında Olay Yordamına
yazalım..
Eveeet artık formumuz harika bir filtreleme özelliğine sahip oldu..
Sevgili access dostları; Form Üzerinden Filtreleme başlığı altında, bölüm bölüm, basit yöntemlerden daha kapsamlı yöntemlere doğru sorgu ile filtreleme yapma tekniklerini anlatmaya çalıştım.. Sürçü lisan ettiysem affola..
Bir sonraki çalışmada görüşmek üzere.. Saygı ve sevgiyle
Taruz..
Bu konuya ait diğer bölümler..:
Ayrıca bakınız..:

Hatırlarsanız, son bölümde arama kutusuna yazdığımız her harfin sonrasında listedeki İsim alanının, oluşan bu harf kümesine göre mütemadiyen filtrelenmesi işlemini yapmıştık..
Şimdi bu sistemi daha da geliştirelim ve bir tek alanı değil, birden fazla alanı seçim yaparak filtreleyelim..
Şimdi üzerinde listemizin ve onu filtrelememize yardımcı olacak metin kutumuzun olduğu formumuzu tasarım görünümünde açalım.. Sonrasında Araç Kutusundan Seçenek Grubu seçelim..
![[Resim: f12.jpg]](http://www.access-sql.com/resim/konuresimleri/f12.jpg)
Bu seçenek grubu yardımı ile filtrelemek istediğimiz alanların seçimini yapacağız..
Evet, Araç Kutusundaki Seçenek Grubuna tıkladık ve Denetim Sihirbazının karşımıza çıkarttığı ilk ekrana filtrelemek istediğimiz alanları tanımlayacak isimleri yazalım..
![[Resim: filtre81.jpg]](http://www.access-sql.com/resim/filtre81.jpg)
Varsayılan seçimi, en sık arama yapacağımız alan olacağını düşündüğümüz İsim olarak belirleyelim..
![[Resim: f9.jpg]](http://www.access-sql.com/resim/konuresimleri/f9.jpg)
Burada, seçtiğimiz alan hangisi ise onun karşılığında alacağı değeri belirliyoruz.. Bu değeri daha sonra sorguda şart olarak kullanacağız.. Sayı olması tercihtir..
![[Resim: f10.jpg]](http://www.access-sql.com/resim/konuresimleri/f10.jpg)
Sonraki pencerede seçenek grubumuzun biçimini özelleştiriyoruz..
![[Resim: f11.jpg]](http://www.access-sql.com/resim/konuresimleri/f11.jpg)
Bu pencerede de seçenek kutumuza isim veriyoruz.. Hızlı Arama diyelim

![[Resim: f13.jpg]](http://www.access-sql.com/resim/konuresimleri/f13.jpg)
Son deyip formumuzun uygun bir yerine konuşlandıralım..
![[Resim: f14.jpg]](http://www.access-sql.com/resim/konuresimleri/f14.jpg)
Şimdi Seçenek Grubumuz hazır. Bundan sonra yapmamız gereken 7. Bölümde yaptıklarımıza benzer..:
Forma bir tane daha metin kutusu(metin5) ekliyoruz ve Biçim / Görünür Özelliğini Hayır olarak değiştiriyoruz.. Hemen ardından arama yaptıracağımız metin kutusunun(metin1) Olay / Değiştiğinde yordamına, yazdığımız harfleri sorgumuza kriter olarak göstereceğimiz görünmez metin kutumuza aktaracak ve sonrasında listemizi yeniden sorgulayacak olan şu kodu yazıyoruz..:
Visual Basic
- Dim Bul As String
- Bul = metin1.Text
- Me.Metin5.Value = Bul
- Me.Liste8.Requery
Formumuz artık hazır sayılır.. Şimdi sırada listemize kaynak gösterdiğimiz sorgumuzu yapmak istediğimiz filtrelemeye göre hazırlamak var..
![[Resim: f15.jpg]](http://www.access-sql.com/resim/konuresimleri/f15.jpg)
Sorgumuza şöyle bir kriter yazmalıyız; demeliyiz ki..:
Arama-filtreleme kutusuna yazdığım her kelime sonrasında seçenek grubunda İsim seçiliyse İsim alanında, Departman seçili ise Departman alanında, İl seçili ise İller alanında arama-filtreleme yap..
Peki bunu nasıl yapacağız? Elimizde bir tane arama kutusu var ama oluşan kriteri atayacağımız üç ayrı alan var. Seçeneğe göre kutuyu bir o alanın bir bu alanın ölçütüne koyamayacağımıza göre farklı bir yol uygulamamız gerek..
Seçenek grubunu oluştururken atadığımız değerler işte burada işe yarayacak..

Hemen sorgumuzdaki boş bir alana gidelim ve şu mantıkta bir deyim yazalım..
Bu alanda, seçenek grubunda İsim seçiliyse İsim, Departman seçili ise Departman, İl seçili ise İller alanının verilerini göster..
Bunu mantığı SQLe çevirmek için daha önceki bölümlerde olduğu gibi iç içe IIF fonksiyonunu da kullanabiliriz ama burada aynı amaçla kullanabileceğimiz ve kullanımı iç içe IIF kullanmaktan daha kolay olan Switch fonksiyonundan faydalanıp deyimi şu şekilde oluşturalım..
SQL
- Switch
- (
- [Forms]![FormA]![secenek]=1;[Ad] & " " & [Soyad],
- [Forms]![FormA]![secenek]=2;[Departman],
- [Forms]![FormA]![secenek]=3;[Iller]
- )
Dikkatli bakınca seçenek grubunu oluştururken belirlediğimiz sayısal değerleri yukarıdaki küme içinde kullandığımızı göreceksiniz..
Artık formdaki seçeneğe göre filtre uygulayacağımız alanımızı oluşturmuştuk olduk.. Hemen Ölçüt bölümüne hazırlanışını önceki konularda işlediğimiz Like işleci ile oluşturduğumuz kriterimizi yazalım..
![[Resim: f16.jpg]](http://www.access-sql.com/resim/konuresimleri/f16.jpg)
Sorgumuzu artık tüm şartlara göre hazırlamış olduk..
Şimdi formumuzu yeniden tasarım görünümünde açalım ve yeni bir arama için kutuyu boşaltacak bir düzenek yapalım..
Formun üstüne bir düğme koyalım ve Tıklandığında Olay Yordamına
Visual Basic
- Me.metin1 = ""
- Me.Metin5 = ""
- Me.Liste8.Requery
yazalım..
Eveeet artık formumuz harika bir filtreleme özelliğine sahip oldu..

![[Resim: f17.jpg]](http://www.access-sql.com/resim/konuresimleri/f17.jpg)
Sevgili access dostları; Form Üzerinden Filtreleme başlığı altında, bölüm bölüm, basit yöntemlerden daha kapsamlı yöntemlere doğru sorgu ile filtreleme yapma tekniklerini anlatmaya çalıştım.. Sürçü lisan ettiysem affola..
Bir sonraki çalışmada görüşmek üzere.. Saygı ve sevgiyle

Taruz..
Bu konuya ait diğer bölümler..:
- Bölüm 1: Form Üzerinden Filtreleme
- Bölüm 2: İki Ayrı Kritere Göre Filtreleme
- Bölüm 3: Tek veya İki Kriterle Birlikte Filtreleme
- Bölüm 4: Kritere Göre Form yada Rapor Açma
- Bölüm 5: Listedeki Verileri Filtreleme ve Rapora Aktarma
- Bölüm 6: Liste Kutusundaki Verileri Dinamik Filtreleme
- Bölüm 7: Liste Kutusundaki Verileri Dinamik ve Hızlı Bir Şekilde Filtreleme
- Bölüm 9: Açılan Kutuda 'Tümü' Seçeneği Kullanarak Filtreleme
Ayrıca bakınız..:
Bulunamayan yerleri bulmak için önce kaybolmak gerekir.
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir
Kaptan Hector Barbossa
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir





