Bölüm 8: Kayıtları Alana Göre Seçerek Dinamik ve Hızlı Bir Şekilde Filtreleme
#1
access-sql-7 
Merhaba.. Smile

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]

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]

Varsayılan seçimi, en sık arama yapacağımız alan olacağını düşündüğümüz İsim olarak belirleyelim..

[Resim: 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]

Sonraki pencerede seçenek grubumuzun biçimini özelleştiriyoruz..

[Resim: f11.jpg]

Bu pencerede de seçenek kutumuza isim veriyoruz.. Hızlı Arama diyelim Wink

[Resim: f13.jpg]

Son deyip formumuzun uygun bir yerine konuşlandıralım..

[Resim: 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
  1. Dim Bul As String
  2. Bul = metin1.Text
  3. Me.Metin5.Value = Bul
  4. 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]

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.. Wink

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
  1. Switch
  2. (
  3. [Forms]![FormA]![secenek]=1;[Ad] & " " & [Soyad],
  4. [Forms]![FormA]![secenek]=2;[Departman],
  5. [Forms]![FormA]![secenek]=3;[Iller]
  6. )



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]

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
  1. Me.metin1 = ""
  2. Me.Metin5 = ""
  3. Me.Liste8.Requery


yazalım..

Eveeet artık formumuz harika bir filtreleme özelliğine sahip oldu.. Wink

[Resim: 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 merhaba

Taruz..



Bu konuya ait diğer bölümler..:

Ayrıca bakınız..:





Eklenti Dosyaları
.rar   Fitreleme8.rar (Boyut: 18,49 KB / İndirilme: 1.389)



  Alıntı
Bu mesajı beğenenler: Osman Krtş
#2
Sayın Taruz;

Dinlence gününde bile, bizi düşünüyor, katkı ve paylaşımlarınızla bizlere yardımınızı esirgemiyorsunuz.

Teşekkürler.

Selam ve sevgiler.



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Taruz paylaşım için teşekkürler
Teşekküre gerek yok, Taş atın yeter!!!



  Alıntı
Bu mesajı beğenenler:
#4
Hocam ellerinize sağlık.Teşeşkürler.



  Alıntı
Bu mesajı beğenenler:
#5
teşekkürler sayın taruz
muhatabının ufkunu açan bir özelliğiniz var.



  Alıntı
Bu mesajı beğenenler:
#6
Teşekkürler Hocam Ellerine sağlık...



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-12 Bölüm 9.1: Dinamik Arama Ve Aranan Kelimeyi Renklendirme Taruz 37 25.713 10-11-2025, 02:29
Son Mesaj: dsezgin
  Cari Hesap Ekstresi Filtreleme Için Yardımcı Olurmusunuz? cost27 2 676 26-10-2021, 13:47
Son Mesaj: cost27
access-sql-7 Bölüm 7: Liste Kutusundaki Verileri Dinamik ve Hızlı Bir Şekilde Filtreleme Taruz 81 56.596 07-03-2021, 00:08
Son Mesaj: kamil_55
access-sql-14 Bölüm 6: Liste Kutusundaki Verileri Dinamik Filtreleme Taruz 11 16.582 22-11-2020, 01:28
Son Mesaj: dsezgin
access-sql-11 Bölüm 3.1: Uzun Metinler İçinde Birden Fazla Kriterle Arama Yapma Taruz 23 18.005 11-12-2019, 01:13
Son Mesaj: dsezgin
access-sql-6 Bölüm 3: Tek veya İki Kriterle Birlikte Filtreleme Taruz 37 32.637 19-07-2019, 09:49
Son Mesaj: halil.tefci
access-sql-6 Bölüm 1: Form Üzerinden Filtreleme Taruz 33 39.600 26-03-2019, 16:12
Son Mesaj: celalll
access-sql-12 Bölüm 2.1: Form Üzerinden İki Tarih Arasında Filtreleme Taruz 25 22.634 16-02-2018, 13:33
Son Mesaj: GökhanU

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi