Excel Formül
Modül 6: İleri Düzey Fonksiyonlar ve Rapor Otomasyonu

VBA ile Dış Veri Alma ve SQL Sorguları

Milyonlarca satırlık devasa veri tabanları ile çalışırken tüm veriyi Excel'e kopyalamak imkansızdır. Bunun yerine VBA içinde ADO (ActiveX Data Objects) kütüphanesini kullanarak doğrudan SQL sorguları (`SELECT`) çalıştırabilir, filtrelenmiş verileri anında Excel sayfasına aktarabilirsiniz.

ADO ve SQL ile Veri Çekme Mantığı

Bu yöntemde VBA kodları sırasıyla şu adımları izler: Bir bağlantı (Connection) nesnesi oluşturulur, veri tabanına bağlanılır, SQL komutu (`SELECT * FROM Tablo WHERE Satis > 1000`) çalıştırılır ve gelen sonuç seti (`Recordset`) Excel hücresine dökülür.

Örnek SQL Sorgu Kod Kalıbı

Dim conn As Object, rs As Object
Set conn = CreateObject("ADODB.Connection")

' Veritabanı bağlantı dizesi ve SQL sorgusu
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Veri.accdb"
Set rs = conn.Execute("SELECT * FROM Personel WHERE Sehir='İstanbul'")

Range("A2").CopyFromRecordset rs

Canlı Simülatör: SQL Sorgusu ile Veri Çekme

Aşağıdaki makro, dış veri tabanına bağlanarak SQL sorgusu (`SELECT`) çalıştıracak ve filtrelenmiş kayıtları Excel sayfasına getirecektir. Kodu Çalıştır butonuna basın.

Visual Basic Editörü
Module1 (SQL Query)
Sub VeriTabanindanVeriCek()
    ' SQL Sorgusu ile verileri listele
    Range("A1").Value = "Sorgulanan Kayıtlar (SQL)"
    Range("A2").Value = "Müşteri: A. Yılmaz | Ciro: 75.000 ₺"

    MsgBox "SQL sorgusu başarıyla çalıştırıldı ve veriler çekildi!", vbInformation
End Sub
Canlı Excel Sayfa Görünümü
A1
A (SQL Veri Aktarım Alanı)
1
2
Microsoft Excel ✕
SQL sorgusu başarıyla çalıştırıldı ve veriler çekildi!