Soru ADO ile Filtrelenen Veriyi Başka Sayfaya Kopyalama

Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba, 4 adet combobox ile Sayfa1'de filtreleme yapıp, filtrelenen verileri Sayfa2'ye kopyalamak istiyorum. Combobox'ların birbirinden bağımsız çalışması gerekiyor. Ekteki dosya üzerinden örnek vermek gerekirse:
Mahalle seçmek için il ya da ilçe seçmeye gerek olmayacak yani il ilçe sokak farketmeksizin sadece mahalleyi listelemem gerekiyor.
Bir türlü beceremedim. Yardımcı olabilir misiniz?

Teşekkürler.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bana göre uygun olmayan bir kullanım şekli olsa da aşağıdaki gibi bir düzenleme mi istiyorsunuz? Userform kodlarını aşağıdakilerle değiştirin:

PHP:
Private Sub UserForm_Initialize()
Call baglan
ListBox1.Column = con.Execute("select * from [Sayfa1$] where not isnull([İl])").getrows
ComboBox1.Column = con.Execute("select distinct([İl]) from [Sayfa1$] where not isnull([İl])").getrows
ComboBox2.Column = con.Execute("select distinct([İlçe]) from [Sayfa1$] where not isnull([İlçe])").getrows
ComboBox3.Column = con.Execute("select distinct([Mahalle]) from [Sayfa1$] where not isnull([Mahalle])").getrows
ComboBox4.Column = con.Execute("select distinct([Sokak]) from [Sayfa1$] where not isnull([Sokak])").getrows
End Sub

Private Sub ComboBox1_Change()
ListBox1.Clear
ComboBox2.Column = con.Execute("select distinct([İlçe]) from [Sayfa1$] where [İl]='" & ComboBox1.Value & "'").getrows
ComboBox3.Column = con.Execute("select distinct([Mahalle]) from [Sayfa1$] where [İl]='" & ComboBox1.Value & "'").getrows
ComboBox4.Column = con.Execute("select distinct([Sokak]) from [Sayfa1$] where [İl]='" & ComboBox1.Value & "'").getrows
ListBox1.Column = con.Execute("select * from [Sayfa1$] where [İl]=""" & ComboBox1.Value & """").getrows
End Sub

Private Sub ComboBox2_Change()
ListBox1.Clear
ComboBox1.Column = con.Execute("select distinct([İl]) from [Sayfa1$] where [İlçe]='" & ComboBox2.Value & "'").getrows
ComboBox3.Column = con.Execute("select distinct([Mahalle]) from [Sayfa1$] where [İlçe]='" & ComboBox2.Value & "'").getrows
ComboBox4.Column = con.Execute("select distinct([Sokak]) from [Sayfa1$] where [İlçe]='" & ComboBox2.Value & "'").getrows
ListBox1.Column = con.Execute("select * from [Sayfa1$] where [İlçe]=""" & ComboBox2.Value & """").getrows
End Sub

Private Sub ComboBox3_Change()
ListBox1.Clear
ComboBox1.Column = con.Execute("select distinct([İl]) from [Sayfa1$] where [Mahalle]='" & ComboBox3.Value & "'").getrows
ComboBox2.Column = con.Execute("select distinct([İlçe]) from [Sayfa1$] where [Mahalle]='" & ComboBox3.Value & "'").getrows
ComboBox4.Column = con.Execute("select distinct([Sokak]) from [Sayfa1$] where [Mahalle]='" & ComboBox3.Value & "'").getrows
ListBox1.Column = con.Execute("select * from [Sayfa1$] where [Mahalle]=""" & ComboBox3.Value & """").getrows
End Sub

Private Sub ComboBox4_Change()
ListBox1.Clear
ComboBox1.Column = con.Execute("select distinct([İl]) from [Sayfa1$] where [Sokak]='" & ComboBox4.Value & "'").getrows
ComboBox2.Column = con.Execute("select distinct([İlçe]) from [Sayfa1$] where [Sokak]='" & ComboBox4.Value & "'").getrows
ComboBox3.Column = con.Execute("select distinct([Mahalle]) from [Sayfa1$] where [Sokak]='" & ComboBox4.Value & "'").getrows
ListBox1.Column = con.Execute("select * from [Sayfa1$] where [Sokak]=""" & ComboBox4.Value & """").getrows
End Sub
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Teşekkürler.
Evet aynen bu tarz filtreleme yapmam gerekiyor. Kodu denedim çok güzel çalışıyor. Şimdi listboxtakileri sayfa2'ye kopyalamam gerekiyor. Onunla ilgili yardımcı olur musunuz?
Ek olarak bu gibi durumlara en ideal ne çözüm önerirsiniz? Daha öncesinde autofilter ile denedim. Aslına bakarsanız en ideal yolu arıyorum o yüzden farklı şeyler deniyorum. Bu gibi durumlar sürekli karşıma çıkacak gibi.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Soruyu anlayamadım. Örnekleyerek açıklar mısınız? Ne zaman ne olunca ne olmasını istiyorsunuz?
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Sayfa1 adlı sayfada yaklaşık 60.000 kayıt olduğunu düşünelim. Amacımız, elimizde olan bilgiler doğrultusunda filtreleme yapıp el son dolu satırın altına alt toplamlarını yazdırım çıktı almak. Bazen elimizde il, ilçe, mahalle, sokak verilerinin hepsi olmuyor bu yüzden daha önceki comboboxa bağlı seçim yaptıramıyorum. Örneğin elimde sadece mahalle ve sokak isimleri var ve bu doğrultuda filtreleme yaptırıp sayfa2'ye yazdırmam gerekiyor. Ya da sadece ilçe ve sokak bilgisi mevcut. Ya da sadece mahalle bilgisi mevcut.
Elimizde mahalle ve sokak bilgisinin olduğunu düşünelim. Sizin kod ile önce mahalle bilgisini sonra sokak bilgisini girince sorun çıkmıyor fakat önce sokak seçip sonra mahalle seçince mahalleyi referans alıyor ve o mahalledeki tüm kayıtları sıralıyor. Netice itibariyle bu tarz bir filtrelemeyi yaptırıp sayfa2 ye kopyalamam gerekiyor.

Teşekkürler.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bahsettiğiniz kadar çok veride nasıl bir sonuç verir bilmiyorum ama gelişmiş filtre kullanarak yaptığım ekli dosyayı inceler misiniz?
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyanın kullanımı şu şekilde: Sayfa2'deki A2: P2 yani yeşil hücrelere veri girerek aşağıdaki kısma istediğiniz verileri getirebilirsiniz.
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Teşekkürler.
Alternatif olarak ben ekteki dosyayı oluşturdum. Vaktiniz varsa bunun üzerinden gidebilir miyiz? Autofilter ile yaptım. Az veride iyi çalışıyor ama veri sayısı fazla olunca yanıt gecikebiliyor. Nerede hata yapıyorum çözemedim. Sırf yavaşlığı yüzünden alternatiflere yöneldim. Bu tür çalışmalarda izlenecek en iyi yol nedir?

Not: Dosyayı siteye eklerken sorun çıktığı için dosya tc sitesine yükledim.

 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Fikrim yok maalesef.
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
İlginize teşekkür ederim. Kullanacak arkadaşlar için: combobox’lar ile bağımsız filtreleme örneği (autofilter ile) 8 nolu mesajda.
 
Üst