• Ana Sayfa
  • Hakkımda
  • Site Haritası

BU PROGRAMLARI DENEDİNİZ Mİ?

IMDB & RottenTomatoes Movie Rate Checker

IMDB & RottenTomatoes Movie Rate Checker

Gürültü Programı

Gürültü Programı

Sipariş ve Stok Yönetimi

Sipariş ve Stok Yönetimi

Excel Tablosunda SQL sorgusu – VBA

4 Yorum Kategori:Excel, SQL, VBA | 07 Eylül 2011
  • Uygulama
  • Kaynak Kodu
Bu yazımızda adım adım herhangi bir Excel tablosundan SQL sorgusu yardımıyla nasıl veri çekebileceğimizi göreceğiz. Böylelikle uzun VBA kodlarıyla yapabileceğimiz sorgulama veya filtreleme işlemlerini daha hızlı ve etkili bir biçimde yapıyor olacağız. Oluşturduğumuz uygulamayı buradan indirebilir, kodlara da “Kaynak Kodu” sekmesinden ulaşabilirsiniz.

İlk olarak Excel sayfamıza sorgulamayı yapacağımız verileri ekliyoruz ve bu verileri bir tablo altında topluyoruz.

Tablo Ekle

Verilerimizin bulunduğu alanı seçtik ve tablomuzu oluşturduk. Alan seçerken kolon bazında yapılmış olması oluşabilecek yeni veri ekleme durumlarında daha fazla etkinlik sağlayacaktır.

Tablo alanı

Tablomuzu oluşturduk. İstediğimiz biçimlemeyi tasarım menüsünden yapabilirsiniz.

Excel Tablosu

Geliştirici menüsünden birer adet button ve textbox ekliyoruz.

Form denetimleri textbox button

Excel sheetimiz kodlarımızı eklemek için gerekli hali aldı.

texybox button

Geliştirici sekmesinden Kod Görüntüle’yi tıklıyoruz (Kısayol olarak Alt+F11 ‘le ulaşabilirsiniz) ve kod sayfamız açıldı.

Araçlar Referanslar

Gerekli referansları verebilmek için Araçlar>>Referanslar menüsüden  ”Microsoft ActiveX Data Objects 2.8 Library” kutusunu işaretliyoruz.
Not: Verdiğimiz bu referans Excel 2003 (8.0) ve Excel 2007 (12.0) için geçerlidir. Excel 2010 (14.0) sürümü için, bu linkten” Microsoft Access Database Engine 2010 Redistributable” dosyasını indirip, kurmalısınız. 2010 kullanıcıları, aşağıda ki kodlarda bulunan connection string’i

strCon = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & strFile & “;Extended Properties=”"Excel 8.0;HDR=Yes;IMEX=1″”;”

strCon = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & strFile & “;Extended Properties=”"Excel 14.0;HDR=Yes;IMEX=1″”;”    şeklinde değiştirmelidir.

Microsoft ActiveX Data Objects 2.8 Library

Aşağıda ki metodu kodlarımıza ekliyoruz. Bu metod yardımıyla sheet’imizde ki tabloları liste haline dönüştürmüş olduk.

SqlsorgusuListobject metodu

Peki SQL sorgusunu yaparken hangi tablo ismini kullanacağız? Metodumuzu button kontrolümüze “Call SqlSorgusuListObjects” şeklinde ekliyoruz ve çalıştırıyoruz. Böylelikle tablomuzu liste haline getirmiş olduk. Aşağıda görüldüğü gibi tablo ismimizi öğrenebiliriz. Bu örnekte tablomuz Sql1Tablo1 ismiyle oluştu.

Ad yöneticisi

Sql1Tablo1

Son olarak aşağıda ki kodları buttonumuza ekliyoruz. Kodların detaylı açıklamalarını aşağıda bulabilirsiniz.

CommanButton1_Click()

Artık sıra geldi sorgumuzu yapmaya. Örnekte textbox’a “SELECT * FROM Sql1Tablo1 WHERE Dogum_yeri=’Ankara’” SQL kodunu ekleyerek doğum yeri Ankara olan kayıtları getiriyoruz. Hepsi bu kadar…

SQL sorgu

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 For c = 1 To rs.Fields.Count If r = 1 Then ActiveSheet.Cells(r + 2, c + 6) = rs.Fields(c - 1).Name Else ActiveSheet.Cells(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
VN:F [1.9.6_1107]
lütfen bekleyiniz…
Puan: 9.8/10 (4 oy verildi)
1234»102030...Son »
  • Excel Tablosunda SQL sorgusu – VBA (4)
  • C#’ta Whois Bilgisi Sorgulama (2)
  • ASP.NET’ te System.Net.Mail isimuzayı kullanarak e-posta gönderimi (0)
  • IMDB & RottenTomatoes Rate Checker v.2.0.2 – IMDB ve RottenTomatoes Puan Sorgulama Programı v.2.0.2 (0)
  • C# ‘ta Dinamik olarak ProgressBar’a metin, yazı ekleme (0)
  • IMDB & RottenTomatoes Rate Checker v.2.0.1 – IMDB ve RottenTomatoes Puan Sorgulama Programı v.2.0.1 (0)
  • Notify Icon kullanımı (0)
  • DataGridView kolon başlıklarını dikey duruma çevirme (0)
  • IMDB & RottenTomatoes Rate Checker v.2.0.4 – IMDB ve RottenTomatoes Puan Sorgulama Programı v.2.0.4 (17)
  • ASP.NET (C#) – Google Pagerank Sorgulama (0)
VN:F [1.9.6_1107]
lütfen bekleyiniz…
Puan: 9.8/10 (4 oy verildi)
takip edin... emailtakip edin... facebooktakip edin... googletakip edin... linkedintakip edin... myspacetakip edin... rsstakip edin... twitter

Günlük Ziyarteçi: 44
Toplam Ziyaretçi: 10512

Kategoriler

  • ASP.NET (11)
  • C# (15)
  • Excel (2)
  • Genel (10)
  • HTML (2)
  • SQL (6)
  • VBA (2)
  • VS.NET (1)

Popüler Gönderiler

  • IMDB & RottenTomatoes Rate Checker v.2.0.4 – IMDB ve RottenTomatoes Puan Sorgulama Programı v.2.0.4 23 Mart 2011
  • Excel Tablosunda SQL sorgusu – VBA 07 Eylül 2011
  • C#’ta Gürültü Haritası Uygulaması 14 Ocak 2011
  • EXCEL – Başka hücre değerine göre koşullu biçimlendirme 19 Şubat 2011
  • C#’ta Whois Bilgisi Sorgulama 07 Haziran 2011

Geçmiş Gönderiler

  • Excel Tablosunda SQL sorgusu – VBA 07 Eylül 2011
  • C#’ta Whois Bilgisi Sorgulama 07 Haziran 2011
  • ASP.NET’ te System.Net.Mail isimuzayı kullanarak e-posta gönderimi 01 Mayıs 2011
  • IMDB & RottenTomatoes Rate Checker v.2.0.2 – IMDB ve RottenTomatoes Puan Sorgulama Programı v.2.0.2 26 Nisan 2011
  • C# ‘ta Dinamik olarak ProgressBar’a metin, yazı ekleme 20 Nisan 2011