vba ado da hata

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhabalar
Belli bir değeri içeren verileri filtrelemek için oluşturulmuş ado kodunu yeniden düzenlediğimde hata alıyorum.
Sayfa1 de kodlar düzdün çalışıyor ama sheet1 de "%ekojenik%" filtrelemesinde hata alıyorum.
Kodu nasıl düzenlememiz gerekir.
Yada ado ile bulunan değerlerin tamamını almak için nasıl düzenlememiz gerekir.

Kod:
Private Sub CommandButton1_Click()
    Call SqlSorgusuListObjects ' Eklediğimiz metodumuzu çağırarak başlıyoruz
    Dim cn As Object ' Bağlantı tanımlıyoruz
    Dim rs As Object ' Recordset tanımlıyoruz
    Dim strFile$, strCon$, strSQL$
    strFile = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name ' Dosyamızın yolunu belirtiyoruz
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    ' Connection string tanımlıyoruz
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    cn.Open strCon
    strSQL = TextBox1.Text ' Sql sorgumuzu textboxtan aldık
    rs.Open strSQL, cn ' recordsetimizi verilerle doldurduk
    Do While Not rs.EOF ' Döngüyle sheetimize sorgudan dönen değerleri yazdırıyoruz
        r = r + 1
        a = rs.Fields.Count
        For c = 1 To rs.Fields.Count
            If r = 1 Then
                Sheets("Sayfa2").Cells(r + 2, c + 6) = rs.Fields(c - 1).Name
            Else
                Sheets("Sayfa2")(r + 2, c + 6) = rs.Fields(c - 1).Value
            End If
        Next
        If Not r = 1 Then rs.MoveNext
    Loop
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
End Sub

Sub SqlSorgusuListObjects()
  Const Prefix = "Sql"
  Dim x, WSh, i&
  With ThisWorkbook
    For Each WSh In .Worksheets
      i = i + 1
      For Each x In WSh.ListObjects
        .Names.Add Prefix & i & x.Name, x.Range, True
      Next
    Next
  End With
End Sub

[QUOTE]Kaynak
[url]http://www.bikod.com/vba/excel-tablosunda-sql-sorgusu-vba.html[/url][/QUOTE]
 

Ekli dosyalar

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Böyle bir yazım şekli yok; ;)
Kod:
[FONT="Trebuchet MS"] Sheets("Sayfa2")(r + 2, c + 6)[/FONT]
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Murat bey teşekkürler, gözden kaçmış.

Ado için sizlerde Türkçe kaynak var mı?
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Rica ederim. :eek:k::

Türkçe kaynak çok aslında.
Buradaki açılan ilk konudan sona doğru konuları inceleyebilirsiniz.


ADO-DAO-Kapalı Dosya Uygulamaları

ADO kullanmaktaki amaç; SQL sorgu cümleleriyle, klasik makroya göre verileri çok daha hızlı yorumlayıp işlem yapmaktır.
Burada önemli olan o SQL sorgu cümlesidir. Meselâ şu an üzerinde çalıştığım bir proje; 6 milyon satır ve 124 sütundan oluşmakta.
Bu veri yığınında klasik makrolarla işlem yapmanız imkânsız. Makroyu çalıştırırsınız ama sonuç almanız saatler, belki günler sürer, ya da yanıt vermez, patlar...
Oysa SQL sorguları ile bilgisayarınızın hızına göre tahminen 3-4 dk. sürer. Bu da çok karmaşık bir SQL sorgusu ise ve dediğim gibi veri yığını bu kadar fazla ise, değilse saniyeler içinde size yanıt verecektir.

Nacizâne tavsiyem; ADO'yu öğrendiğinizde, ki sanıldığı kadar zor değildir, mutlaka SQL de öğrenmeye çalışın. Çünkü; asıl işi bu SQL sorgular yapıyor, gerisi tamamen klişe yapılardan oluşuyor.

Saygılar
 
Üst