• DİKKAT

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

ADO İLE FİLTRELEME

Katılım
7 Mayıs 2019
Mesajlar
40
Excel Vers. ve Dili
Microsoft 2017
Visual Studio 2013-2014-2017-2019
Öncelikle merhabalar Ekte sundugum bi dosyam ado ile kapalı dosyadan istediğim verileri çekiyorum ancak verileri çekerken 8% karlılık altınıda filtrelemek istiyorum yardımcı olabilcek birileri varmıdır Örnek Dosyam ekdedir

ÖRNEK DOSYA
 
Tam anlamadım.
Deneyiniz.:cool:
ActiveSheet.Range("$A$1:$I$322").AutoFilter Field:=7, Criteria1:="<=-0.08", _
Operator:=xlAnd
 
Tam anlamadım.
Deneyiniz.:cool:
ActiveSheet.Range("$A$1:$I$322").AutoFilter Field:=7, Criteria1:="<=-0.08", _
Operator:=xlAnd
Bunu denemiştim tam olarak istediğimi vermiyor kod bloğunu paylasayım ordan bakın birde
 
Kod:
Sub Vericek()
    Dim Con As Object, Rs As Object, Sorgu As String
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
    Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\YENİ TPR ÇALIŞMA.xlsx" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select TARİH, KOD,[CARİ HESAP ÜNVANI],[STOK KODU],[STOK AÇIKLAMASI],[NET BİRİM FİYAT],[KAR %],[ÖNCEKİ ALIŞ TARİHİ],[ÖNCEKİ ALIŞ] From [SİP TPR$]"
    Rs.Open Sorgu, Con, 1, 1
    Range("A2").CopyFromRecordset Rs
    Rs.Close: Con.Close
    Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
    
End Sub
bu kod satırında Kar % de 8%'nin altındakileri getirsin istiyorum sadece
 
Merhaba,

Altın üye olarak forum üzerinden de örnek dosyanızı paylaşabilir misiniz.
Çıkan sonucu mu filtrelemek istiyorsunuz?
 
Buyurun.:cool:
Kod:
Sub Ado_Kapalı()
    Dim Con As Object, Rs As Object, Sorgu As String
    Range("A2:I" & Rows.Count).ClearContents
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
    Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\YENİ TPR ÇALIŞMA.xlsx" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select TARİH, KOD,[CARİ HESAP ÜNVANI],[STOK KODU],[STOK AÇIKLAMASI],[NET BİRİM FİYAT],[KAR %],[ÖNCEKİ ALIŞ TARİHİ],[ÖNCEKİ ALIŞ] From [SİP TPR$] where [KAR %] <=-0.08"
    Rs.Open Sorgu, Con, 1, 1
    Range("A2").CopyFromRecordset Rs
    Rs.Close: Con.Close
    Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
     Range("A1").Select
  End Sub
 
Evren bey'in çözümü istediğiniz gibi olmazsa örnek dosyanızı forum üzerinden eklerseniz bakabilirim.
İnternet filtresinden dolayı eklediğiniz linke giremiyorum.
Ayrıca excel' de filtre edilince sonuçlar gizlenir. Siz hiç gelmesini istemiyorsunuz.
Filtre ifadesi istediğinizi anlatmıyor. Sonraki mesajlarınızda isteğinizi daha net anlatmışsınız.
 
Buyurun.:cool:
Kod:
Sub Ado_Kapalı()
    Dim Con As Object, Rs As Object, Sorgu As String
    Range("A2:I" & Rows.Count).ClearContents
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
    Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\YENİ TPR ÇALIŞMA.xlsx" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select TARİH, KOD,[CARİ HESAP ÜNVANI],[STOK KODU],[STOK AÇIKLAMASI],[NET BİRİM FİYAT],[KAR %],[ÖNCEKİ ALIŞ TARİHİ],[ÖNCEKİ ALIŞ] From [SİP TPR$] where [KAR %] <=-0.08"
    Rs.Open Sorgu, Con, 1, 1
    Range("A2").CopyFromRecordset Rs
    Rs.Close: Con.Close
    Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
     Range("A1").Select
  End Sub
Tam getirmiyor malesef verileri sanırsam bir yerinde hata var ya da ben yanlış anlattım Dosyaları yüklüyorum öyle daha anlasılır olucak sanırsam
 
Evren bey'in çözümü istediğiniz gibi olmazsa örnek dosyanızı forum üzerinden eklerseniz bakabilirim.
İnternet filtresinden dolayı eklediğiniz linke giremiyorum.
Ayrıca excel' de filtre edilince sonuçlar gizlenir. Siz hiç gelmesini istemiyorsunuz.
Filtre ifadesi istediğinizi anlatmıyor. Sonraki mesajlarınızda isteğinizi daha net anlatmışsınız.
Söyle anlatayım Ben bütün verileri eksiz alıyorum normal filtrele seçeneğinde küçüktür veya eşittir filtresi olan 8% altındaki verileri o getiriyor ama ben bunu ado ile yapmak istiyorum istediğim bu
 
Söyle anlatayım Ben bütün verileri eksiz alıyorum normal filtrele seçeneğinde küçüktür veya eşittir filtresi olan 8% altındaki verileri o getiriyor ama ben bunu ado ile yapmak istiyorum istediğim bu
Ado ile yaptım.Filtreyi sql cümlesinde yazdım:Hepsini getirmez.-0,08 altında olanları getirir.:cool:
 
Koddaki yeri aşağıdaki ile değiştirin.:cool:
Kod:
where [KAR %] <=0.08"
 
Kod:
Sub Vericek()
    Dim Con As Object, Rs As Object, Sorgu As String
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
    Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\YENİ TPR ÇALIŞMA.xlsx" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select TARİH, KOD,[CARİ HESAP ÜNVANI],[STOK KODU],[STOK AÇIKLAMASI],[NET BİRİM FİYAT],[KAR %],[ÖNCEKİ ALIŞ TARİHİ],[ÖNCEKİ ALIŞ] From [SİP TPR$]"
    Rs.Open Sorgu, Con, 1, 1
    Range("A2").CopyFromRecordset Rs
    Rs.Close: Con.Close
    Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
    Range("A1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$I$322").AutoFilter Field:=7, Criteria1:="<=8%", _
        Operator:=xlAnd
    
End Sub
Peki Sayın Evren Bey Ben Altına bu filtreleme methodunu eklediğimde istediğim sonucu alıyorum sizinde bir kaçını eksik veriyor sebebini anlamamda bana yardımcı olurmusunuz
 
Eksik veriyor dediklerinizden bir kaç tane buraya yazarmısınız?
 
Geri
Üst