Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > Diğer Yazılımlar > Access Örnekleri ve Bilgileri > Access Dersanesi
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Access Dersanesi Bu başlıkta eğitim ve öğretim amaçlı her türlü access dokümanını paylaşabilirsiniz.

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 13-08-2009, 19:13   #1
Taruz
Uzman
 
Taruz kullanıcısının avatarı
 
Giriş: 18/04/2007
Şehir: İstanbul
Mesaj: 2,062
Excel Vers. ve Dili:
Access 2010
Smile Form Üzerinden Filtreleme Yöntemleri 2

Liste Kutusundaki Verileri Dinamik Filtreleme

Not: Bu konudaki bilgiler ve resimler daha önceki bir paylaşımımdan alıntıdır..


Tekrar merhaba..

Önceki anlatımlarımızda verilerimizi bir ve daha fazla kritere göre filtreleme yöntemlerini işlemeye çalıştık.. Şimdi isterseniz filtreleme konusunu daha ileri seviyeye taşıyalım..

Liste kutusundaki verilerimizi dinamik bir şekilde filtreleyelim..

Listemizin olduğu formu bu şekilde tasarlayalım..:


Amacımız, üsteki metin kutusuna girdiğimiz anahtar harflere uyan kayıtları listelemek.. Mesela Se yazıp entere basınca ismi Se ile başlayan personeli listede görmek istiyoruz. Ya da sadece, ismi MEHMET olan personelleri listelemek istiyoruz..

Bu işlemi yapacak deyimi yazmak için listenin kaynağı sorguyu tasarım görünümünde açalım..

Önce Adı ve Soyadı alanlarını tek alanda birleştirelim..:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
[Ad] & " " & [Soyad]



Alan adını da İsim yapalım..



Şimdi bu alanın ölçüt kısmına şartımızı yazalım.. Diyelim ki:

Formdaki isim metin kutusuna yazdığım kelime ile başlayan isimleri süz..

Bu sorgunun anlayacağı şekilde yazacak olursak..:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
 Like [Forms]![FormA]![Açılan Kutu2] & "*"
Burada gördüğünüz gibi Like (Buradaki Türkçe karşılığı, "benzer, benzeri, -miş gibi") işlecinden faydalandık.. Formdaki metin kutusuna yazdığımız değerin sonuna birleştirme operatörü (&) ile de * (yıldız) ile ilave ederek yazılan kelimeler ile başlayan tüm isimlerin sıralanmasını sağladık..:



Metin kutusunun güncelleştirme sonrasında olayına listeyi yeniden sorgulayan kodu yazmayı unutmayalım..:


Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Me.Liste8.Requery



Şimdi ölçütümüze küçük bir ilave yaparak sadece metin kutusuna yazdığımız kelime ile başlayanları değil, bu kelimeyi içerisinde barındıran kayıtları da listeleyelim..

Bunu yapmak için ölçütümüzün sonuna ilave ettiğimiz * karakterini başına da yazalım..:


Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Like "*" & [Forms]![FormA]![Açılan Kutu2] & "*"



Yukardaki resimde gördüğünüz ad olarak girdiğimiz kriterin verdiği sonuçlar şimdi daha da çoğaldı.. Sadece ad ile başlayan değil içerinde ad ifadesi geçen (FADİME BAL, ZÜLFİKAR YADİGAR vb.) tüm kayıtlar listelendi..:



Bir sonraki konuda, bu yöntemi bir ileri seviyeye taşımayı göreceğiz.. Şimdilik hoşçakalın..

Taruz..
Eklenmiş Dosyalar
Dosya Türü: rar Fitreleme6.rar (18.8 KB, 302 Görüntülenme)
__________________
"Bulunamayan yerleri bulmak için önce kaybolmak gerekir.''
Kaptan Hector Barbossa
Taruz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-08-2009, 19:18   #2
Taruz
Uzman
 
Taruz kullanıcısının avatarı
 
Giriş: 18/04/2007
Şehir: İstanbul
Mesaj: 2,062
Excel Vers. ve Dili:
Access 2010
Varsayılan

Liste Kutusundaki Verileri Dinamik ve Hızlı Bir Şekilde Filtreleme

Merhaba..

Bir önceki çalışmamızda hatırlarsanız form üzerindeki bir metin kutusuna girdiğimiz kelimeyi Personel İsmi içinde barındıran kayıtları filtrelemiştik..

Şimdi bunu bir ileri safhaya taşıyalım ve metin kutusuna harfleri yazdıktan sonra değilde yazdığımız sırada listedeki kayıtlar da filtrelensin..

Bu işlemin, daha önce ActiveX texbox nesnesi ile yapılmış örneklerini görmüş olabilirsiniz.. Bu OLE nesnesine girilen harfler değiştikçe(arttıkça) listedeki verilerde oluşan bu metine göre değişiyor ve yeniden süzülüyor.. (tabi kodlar ve deyimler ilave ederek)

Biz, şimdi hiçbir OLE nesnesi kullanmadan ve de çok daha pratik şekilde bu işlemi yapacağız..

Önce Listemizin ve Metin Kutumuzun olduğu formumuzu tasarımda açalım..

Form üzerine Araç Kutusundan yeni bir metin kutusu (metin5) koyalım.. Biçim özelliklerinden Görünür seçeneğini Hayır olarak değiştirelim..

Sonra kayıt arama-filtreleme için kelimeler gireceğimiz metin kutusunun (metin1) Olay / Değiştiğinde





yordamına şu kodu yazalım..:



Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Dim Bul As String
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Bul = metin1.Text 
Me.Metin5.Value = Bul



Bu kod metin1 (arama-filtreleme için anahtar kelimeleri yazdığımız metin kutusunun adı) metin kutusuna yazdığımız değerleri daha önce gizlediğimiz Metin5 metin kutusuna yazdırıyor.. Harfler çoğaldıkça yani metin1 değiştikçe Metin5 de aynı değeri alıyor..

Şimdi yazdığımız değeri taşıyan bu metin kutusunu listemizin sorgusuna ölçüt göstereceğiz..

Sorgumuzu tasarımda açalım ve İsim alanının ölçütüne bir önceki bölümde işlediğimiz gibi Like işleci yardımı ile kriterimizi yazalım..


Son olarakta her yeni harfi girdikten sonra listeyi tekrardan sorgulamak için yukarıdaki kodun sonuna



Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Me.Liste8.Requery




ekleyelim..

Şimdi tamamdır..

Artık arama kutusuna her harfi yazdığımız anda liste oluşan harf kümesine- kelimeye göre filtreleniyor..

Durun! unuttum. Yeni bir arama için kutuyu boşaltacak bir düzenek yapalım bir de..

Hemen forma bir düğme koyalım ve Tıklandığında Olay Yordamına şu kodu yazalım..:



Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Me.metin1 = ""
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Me.Metin5 = "" Me.Liste8.Requery




Şimdi tamamdır işte..






Bir sonraki bölümde olayı abartalım ve tek metin kutusundan birden fazla alandaki verileri filtreleyelim.. Hatta bunu filtrelemek istediğimiz alanı seçerek yapalım..

Görüşmek üzere..

Taruz..
Eklenmiş Dosyalar
Dosya Türü: rar Fitreleme7.rar (20.5 KB, 126 Görüntülenme)
__________________
"Bulunamayan yerleri bulmak için önce kaybolmak gerekir.''
Kaptan Hector Barbossa
Taruz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-08-2009, 19:26   #3
Taruz
Uzman
 
Taruz kullanıcısının avatarı
 
Giriş: 18/04/2007
Şehir: İstanbul
Mesaj: 2,062
Excel Vers. ve Dili:
Access 2010
Varsayılan

Kayıtları Alana Göre Seçerek Dinamik ve Hızlı Bir Şekilde Filtreleme


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

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
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..



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

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
 
 
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..



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


Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
 Me.metin1 = ""
Me.Metin5 = ""
Me.Liste8.Requery
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..


Not: Bu konudaki bilgiler ve resimler daha önceki bir paylaşımımdan alıntıdır..
Eklenmiş Dosyalar
Dosya Türü: rar Fitreleme8.rar (18.5 KB, 165 Görüntülenme)
__________________
"Bulunamayan yerleri bulmak için önce kaybolmak gerekir.''
Kaptan Hector Barbossa
Taruz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-08-2009, 19:33   #4
assenucler
Altın Üye
 
Giriş: 19/08/2004
Şehir: Istanbul
Mesaj: 2,500
Excel Vers. ve Dili:
Office 2016 TR - Windows 10 TR x64
Varsayılan

Sayın Taruz;

İyi akşamlar.

Bu güzel çalışma ve paylaşımınız dolayısıyla sizi kutlar..

Selam ve sevgilerimi sunarım...
__________________
Windows 10 Türkçe
Office 365 TR Ev Ekstra 2016
assenucler Çevrimdışı   Alıntı Yaparak Cevapla
Eski 14-08-2009, 08:04   #5
İsmail Küçükşengün
 
İsmail Küçükşengün kullanıcısının avatarı
 
Giriş: 31/08/2005
Şehir: İstanbul
Mesaj: 1,531
Excel Vers. ve Dili:
Excel 2003 - Türkçe
Varsayılan

Sayın Taruz hocam;

Gerçekten bir ders mahiyetindeki anlatım ve paylaşımlarınız bir harika.

Çok teşekkürler.Selamlar.
__________________
İyi Çalışmalar....

Excel XP - Türkçe
İsmail Küçükşengün Çevrimdışı   Alıntı Yaparak Cevapla
Eski 14-08-2009, 11:07   #6
BKCAN
 
Giriş: 26/10/2006
Şehir: mersin
Mesaj: 169
Excel Vers. ve Dili:
office 2003
Varsayılan

emeginize sağlık Sayın Taruz
BKCAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-09-2009, 22:17   #7
aydın3838
 
Giriş: 10/04/2008
Şehir: kayseri
Mesaj: 394
Excel Vers. ve Dili:
EXCEL 2003 TÜRKÇE
Varsayılan

sayın taruz bey öncelikle yapılan çalışmalarınız için teşekkürler

ben veri tabanı olarak acces kullanmaktayım formlarım ve çalışmalarım tümüyle exceldedir

bu yapmış olduğunuz sorgulama yı excelde formla yapmak istiyorum

acces veri tabanında sorgulamalarım mevcut accesde bu anlattıklarınızın hepsını yapabiliyorum

fakat userformdada yapmam için sorgulama ekranındaki
sorgu texti ni userformda nasıl kullanabilirim

yardımcı olursanız sevinirim saygılar
aydın3838 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-09-2009, 03:47   #8
Taruz
Uzman
 
Taruz kullanıcısının avatarı
 
Giriş: 18/04/2007
Şehir: İstanbul
Mesaj: 2,062
Excel Vers. ve Dili:
Access 2010
Varsayılan

Alıntı:
aydın3838 tarafından gönderildi Mesajı Görüntüle
sayın taruz bey öncelikle yapılan çalışmalarınız için teşekkürler

ben veri tabanı olarak acces kullanmaktayım formlarım ve çalışmalarım tümüyle exceldedir

bu yapmış olduğunuz sorgulama yı excelde formla yapmak istiyorum

acces veri tabanında sorgulamalarım mevcut accesde bu anlattıklarınızın hepsını yapabiliyorum

fakat userformdada yapmam için sorgulama ekranındaki
sorgu texti ni userformda nasıl kullanabilirim

yardımcı olursanız sevinirim saygılar
Merhaba sn. aydın3838..

Yukarıda anlattığım filtreleme şekillerini Excele adepte edilmesi konusunda çok bilgim yok..
Vt'yi excele bağlayıp filetreleme işlemlerinin Excelde yapılması gerek sanırım.. Access dosyasında yapılan, yukarada anlatılan türde bir filtrelemenin Excel dosyası ile etkileşimli çalışabileceğini sanmıyorum.. Yine de bu sorunuzu değerli Excel uzmanlarımıza yöneltirseniz daha net bir bilgi alabilirsiniz diye düşünüyorum..

Saygılar..
__________________
"Bulunamayan yerleri bulmak için önce kaybolmak gerekir.''
Kaptan Hector Barbossa
Taruz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 02-11-2009, 15:48   #9
erkankamilonas
 
Giriş: 03/04/2007
Mesaj: 235
Excel Vers. ve Dili:
2003 TR
Varsayılan

Sayın Taruz gerçekten çok faydalı bilgiler. Teşekkür ederiz.

Arkadaşın sorusunda gelince;
Sorgularınız Formdaki nesnelerin Change olayına veya atadığınız bir butona bağlamanız ve şartlar kısmında (Where'den sonraki alana) '" & [nesnjenin adının buraya yazılması gerekir.] & "' belirtmeniz gerekir.

Ama VT Acces iken Excel ve Formlar ile VTabanına bilgi göndermek silmek güncellemek sizi yoracak ve sonuca ulaşmanızı geciktirecektir.
erkankamilonas Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-02-2010, 10:28   #10
fox35
 
Giriş: 29/05/2009
Şehir: ankara
Mesaj: 15
Excel Vers. ve Dili:
2003
Varsayılan

çok teşekkürler dostum ışığınla aydınlandık ellerin dert görmesin.
fox35 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 01:13


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden