• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Combobox veri filtreleme hk.

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,677
Excel Vers. ve Dili
Excel 2010 32 bit
Merhaba
Ek dosyada daha açık şekilde anlatabildiğim combobox değişimlerine bağlı diğer sahifeden veri filtreleme ye ihtiyacım var.
Bu işi önce özet tablo oradan "gelişmiş filtreleme" ile verileri alıp daha sonra listboxta gösterme şeklinde yapabildim.
bunu daha kısa yoldan yapabilirmiyiz.
 

Ekli dosyalar

Sayfanın kod sayfasına ekleyip deneyiniz.
Kod:
Private Sub ComboBox1_Change()
    Call sorgula
End Sub
Private Sub ComboBox2_Change()
    Call sorgula
End Sub
Sub sorgula()
    If ComboBox1.Text <> "" And ComboBox2.Text <> "" Then
        ListBox1.Clear
        ListBox2.Clear
        Dim con As Object
        Dim rs As Object
        Set con = CreateObject("adodb.connection")
        con.Open "provider=microsoft.ACE.oledb.12.0;data source=" & _
                 ThisWorkbook.FullName & ";extended properties=""Excel 11.0;hdr=yes"""

        Sql = "select [ÜRÜN ADI], sum([ADET]), ROUND(sum([NET TUTAR]),2) from [VERI$] where [YIL]=" & ComboBox2.Text & " and [AY]='" & ComboBox1.Text & "' group by [ÜRÜN ADI]"

        Set rs = con.Execute(Sql)
        If Not rs.bof Then ListBox1.Column = rs.getrows

        Sql = "select [ÜRÜN GRUBU], sum([ADET]), ROUND(sum([NET TUTAR]),2) from [VERI$] where [YIL]=" & ComboBox2.Text & " and [AY]='" & ComboBox1.Text & "' group by [ÜRÜN GRUBU]"

        Set rs = con.Execute(Sql)
        If Not rs.EOF Then ListBox2.Column = rs.getrows

        Set rs = Nothing
        Set con = Nothing
    End If
End Sub
 
merhaba veysel bey ,
Yüklenebilir ISAM bulunamadı
hatası veriyor
 
Ekteki 2003 dosyasında hazırlamıştım kodları inceleyiniz.
 

Ekli dosyalar

Merhaba Veysel Hocam,
Çok teşekkür ederim.
Cevabınız sayesinde farklı bir veri alma yöntemi öğrenmiş oldum.
Ek dosyada göreceğiniz üzere listboxların toplamını alan kod ekleyebildim.
Farklı bir listbox daha ekleyerek farklı bir veri çekmeye çalıştım.
Kodlarınıza aşina olmadığım için bir sutundaki veriyi alamadım.
Zahmet olmasa kodların işlevlerini kavrayabilmem için ' ..... diye açıklayabilirmisiniz.
Ellerinize sağlık.
Selametle kalınız.
 

Ekli dosyalar

Siz olayı zaten kavramışsınız, sql cümlesini aşağıdaki gibi değiştirirek deneyin.
Kod:
 Sql = "select [SATIŞ ELEMANI], [ÜRÜN GRUBU], ROUND(sum([NET TUTAR]),2) from [VERI$] where [YIL]=" & ComboBox2.Text & " and [AY]='" & ComboBox1.Text & "' group by [SATIŞ ELEMANI],[ÜRÜN GRUBU]"
 
Merhaba Veysel bey,
Çok teşekkür ederim.
Selametle kalınız.
 
Merhaba Veysel bey,
Günlük işlemler sahifesini textbox / tarih krıterli olarak oluşturmak istedim.
Kodu doğru revize edemediğimden hata verdi.
Teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki gibi deneyiniz.
Kod:
        Sql = "select [ÜRÜN ADI], sum([ADET]), ROUND(sum([NET TUTAR]),2) from [VERI$]  where [TARİH]=#" & TextBox1 & "# group by [ÜRÜN ADI]"
 
merhaba veysel bey,
hata veren satır
Kod:
Set rs = con.Execute(Sql)
 
Veysel bey merhaba,
Dosyamın son halini ekledim.Senelik kısmını hallettim.
Teşekkür ederim.
 

Ekli dosyalar

Kod:
Sql = "select [ÜRÜN ADI], sum([ADET]), ROUND(sum([NET TUTAR]),2) from [VERI$] where [TARİH]=#" & Replace(TextBox1, ".", "/") & "# group by [ÜRÜN ADI]"
 
Veysel bey merhaba,
Çok teşekkür ederim.
Selametle kalınız.
 
merhaba veysel bey,
kodu farklı bir şekilde kullanmak istedim. "sorgu ifadesi içindeki fazladan" hatası verdi.
açıklamayı dosya içerisinde yaptım.
Teşekkür ederim.
 

Ekli dosyalar

Dosya içerisinde açıklama yok.
Eğer Sorgu sayfasına notları almak içinse aşağıdaki gibi kullanabilirsiniz. Benim excel 2003 olduğu için denemeden yazıyorum.

Kod:
Sql = "select [KAYIT], [ACIKLAMA] from [NOTLAR$] where [CARI]=" & TextBox1.Text
 
Veysel bey merhaba,
listboxa a sadece kayıt sutunundan veri getiriyor.

Kod:
Sql = "select [KAYIT], [TAAHHUT], [ACIKLAMA] from [NOTLAR$] where [CARI]=" & TextBox1.Text
 

Ekli dosyalar

Son düzenleme:
Listbox'un ColumnCount sayısını 3 yapın.

Kod:
        Sql = "select format([KAYIT],'dd.mm.yyyy'), format([TAAHHUT],'dd.mm.yyyy'), [ACIKLAMA],3 from [NOTLAR$] where [CARI]=" & TextBox1.Text
 
Veysel bey merhaba,
Çok teşekkür ederim.
Sizleri çok rahatsız ettim.
Hakkınızı helal ediniz.
Selamete kalınız
 
Veysel bey merhaba,
projeyi biraz daha ilerlettim.
Sorunum: cari seçtikten sonra listbox1 in toplam tutarını textbox 9 a aldırmak istedim.Kod listbox1 Adet sutununu topluyor yanındaki toplam tutar sutununu toplarken hata veriyor. sql kodunda formatı değiştirdim. yine olmadı.
Yardımlarınıza teşekkür ederim.
 

Ekli dosyalar

Kod:
 T1 = CDbl(ListBox2.List(i - 1, 4)) + T1

veya sorguyla direkt olarak almak için düzenleyin.

Kod:
        Sql = "select [SATIŞ NO],format([TARİH],'dd.mm.yyyy'), [ÜRÜN ADI],[ADET],format([NET TUTAR],'##0.00'),format([SEVK PLN],'dd.mm.yyyy'),[SEVK DURUMU],format([SEVK TRH],'dd.mm.yyyy') from [VERI$] where [CARİ NO]=" & TextBox1.Text
        Set rs = con.Execute(Sql)
        If Not rs.EOF Then
            ListBox2.Column = rs.getrows
            [COLOR=DarkRed]Sql = "select format(sum([NET TUTAR]),'##0.00') from [VERI$] where [CARİ NO]=" & TextBox1.Text
            Set rs = con.Execute(Sql)
            TextBox9.Value = rs(0).Value[/COLOR]
        End If
 
Geri
Üst