Microsoft Excel

Excel Tablosunda Sql Sorgularını Kullanma

Yeni bir Paket Programlar dersi makalesi ile birlikteyiz.

Neredeyse tüm veri tabanlarında Sql deyimlerinin kullanıldığını görmekteyiz. Bu deyimler yardımı ile tablo içerisinde değişik kriterlere göre bilgileri alabilmekteyiz. Excel programı da veri tabanı olarak kullanılabilmektedir. O halde Sql deyimlerini de kullanabiliriz. Filtreleme ile yapılabilecek birçok işlemi hatta daha fazlasını bu deyimler yardımı ile yapabilirsiniz. Bu makalemizde Select deyimi ile ilgili uygulama geliştireceğiz. Makaleyi okumadan önce lütfen reklamlara tıklamayı unutmayınız.

İlk olarak Excel çalışma sayfasına uygulama için gerekli verileri ekliyoruz. Daha sonra bu verileri bir tablo altında topluyoruz.

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.

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

Geliştirici menüsünden birer adet CommandButton ve Textbox ekliyoruz.

Şimdi kod yazımı için VBA moduna geçelim. Bunun için Alt+F11 tuş takımını kullanabilirsiniz.

Gerekli referansları verebilmek için Araçlar>>Referanslar menüsüden  ”Microsoft ActiveX Data Objects 2.8 Library” kutusunu işaretliyoruz.

Excel programına ait değişik versiyonlar mevcut olduğu için ConnectionString satırı değişiklik göstermektedir. Biz, Excel 2013 kullandığımız için Microsoft Access Database Engine 2013 Redistributable dosyasını indirdik ve bilgisayarımıza kurduk. Yukarıda verilen Referans ise, Excel 2003 (8.0) ve Excel 2007 (12.0) için geçerlidir. Excel 2010 (14.0) sürümü için, Microsoft Access Database Engine 2010 Redistributable dosyasını indirip, kurmalısınız. Buna göre, connectionstring satırları şöyle olacaktır.

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.

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

Sub SqlSorgusu()

Const Basla = "Sql"

Dim x, WSh, i&

With ThisWorkbook

    For Each WSh In .Worksheets

        i = i + 1

        For Each x In WSh.ListObjects

            .Names.Add Basla & i & x.Name, x.Range, True

        Next

    Next

End With

End Sub

Peki SQL sorgusunu yaparken hangi tablo ismini kullanacağız? Metodumuzu Button kontrolümüze “Call SqlSorgusu” şeklinde ekliyoruz ve çalıştırıyoruz. Böylelikle tablomuzu liste haline getirmiş olduk. Bu örnekte tablomuz Sql1Tablo1 ismiyle oluştu. Son olarak aşağıdaki kodları buttonumuza ekliyoruz.

Private Sub CommandButton2_Click()

Call SqlSorgusu

Dim cn As Object

Dim rs As Object

Dim strFile$, strCon$, strSQL$

strFile = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties='Excel 12.0 Xml;HDR=YES';"

Set cn = CreateObject("ADODB.Connection")

Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

strSQL = TextBox1.Text

rs.Open strSQL, cn

Do While Not rs.EOF

    r = r + 1

    For c = 1 To rs.Fields.Count

        If r = 1 Then

            ActiveSheet.Cells(r + 2, c + 7) = rs.Fields(c - 1).Name

        Else

            ActiveSheet.Cells(r + 2, c + 7) = 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

Şimdi sıra geldi sql deyiminini tablo üzerinde uygulamaya. “select * from sql1Tablo1 where Cinsiyet='K'” deyimi tablomuzda cinsiyeti kız olanları listelemek için kullanılır.


İlgili Makaleler
Excel Programında Başka Hücre Değerine Göre Koşullu Biçimlendirme İşlemi
Verilen İki Matrisi Çarpan Problemi Excel Programında Yapınız
Excel Programında Metin İçinden İstenilen Kelimeyi Almak
Unutulan Excel 2003 Vba Şifrelerini Sıfırlama
Excel Tablosunda Sql Sorgularını Kullanma
Excel Programında Hücre Değerine Göre Otomatik Sayı Numarası Verme
Bir Çalışma Kitabında İken Diğer Çalışma Kitabındaki Verileri ListBox Nesnesine Aktarma
Excel Programında Çalışma Kitabını Çoklu Paylaşıma Açma ve Kapatma
Unutulan Excel 2010 VBA Şifresini Sıfırlama
Excel Programında Yeni Çalışma Kitabına Ribbon Menü Ekleme
Microsoft Excel Program Penceresinin Genel Görünümü ve Arayüzü
Excel Programında Kullanıcının Tanımladığı Bir Fonksiyonu Excel Eklentisi Olarak Tüm Çalışma Kitaplarında Kullanma
Excel Programında Aynı Hücreye Girilen Adı Soyadı Bilgisini Ayıran Fonksiyonu Kodlayınız
Excel Programında Puzzle Oyununu Yapan Programı Kodlayınız
Pozitif Bir Tam Sayının Asal Çarpanlarını Bulan Excel Kitap Uygulaması
Excel Programında Motorun Çalışmasını Gösteren Videoyu Oynatınız
Microsoft Excel Programında Formül Girişi
Excel Programında Veri Tablosu
Excel Programında Alt Toplam Alma
Excel Programında Aralarında Virgül Olan Metni Alt Alta Yazdırma

Yorum Ekle
   
Kötü
İyi