Macro'yla SQL Veritabanından Excel'e Kayıt Getirme

Aşağıda OKYS isimli bir veritabanı ve Kisiler isimli bir tablo oluşturuyoruz. Bu tabloya 4 kayıt ekliyoruz. 
Daha sonra da bu veritabanından Macro'yla bu tablodan kayıtları okuyup, Excel satırlarına kopyalıyoruz. 
Macro prosedürünü çalıştırmak için Alt+F8 tuş kombinasyonunu kullanıyoruz. 
----------------------------------------------------------------------------------------------------------------------
create database OKYS     -- Veritabanı oluşturulması 
go  
use OKYS      -- Kullanılacak veritabanının seçilmesi
create table Kisiler       -- Kolonları ile beraber Kisiler tablosu oluşturulması
(KisiID integer identity(1,1) primary key,   -- Primary key olan tamsayı veri tipli otomatik artan KisiID 
 KisiAdi varchar(15) not null,    -- Boş bırakılamaz olan 15 karakterlik KisiAdi kolonu
 KisiSoyadi varchar(15) not null,    -- Boş bırakılamaz olan 15 karakterlik KisiSoyadi kolonu
 DogumTarihi date not null,    -- Boş bırakılamaz olan tarih veri tipli DogumTarihi kolonu
 TCKimlikNo char(11) not null unique    -- Boş bırakılamaz ve Unique olan 11 karakterlik TCKimlikNo
); 
insert into Kisiler values       -- Kisiler tablosuna 4 kayıt eklenmesi 
('Ahmet', 'Yılmaz', '1996/06/16', '12345678919'), 
('Mehmet', 'Yıldırım', '1997/07/17', '12345678929'),
('Hasan', 'Yıldız', '1995/05/15', '12345678939'),
('Hüseyin', 'Yüksel', '1998/08/18', '12345678949');

----------------------------------------------------------------------------------------------------------------------
'Veritabanından Kayıtları Okuyup Excel'e Kopyalayan Prosedür

Sub GetDataFromDatabase()
 Dim con As ADODB.Connection
 Dim rs As ADODB.Recordset
 Set con = New ADODB.Connection      'Bağlantı nesnesinin oluşturulması
 Set rs = New ADODB.Recordset       'Kayıt kümesi nesnesinin oluşturulması
    
 strCon = "Provider=SQL Server Native Client 11.0;"      
 strCon = strCon & "Data Source=SINANDILAVER;"     'Sunucu Adı
 strCon = strCon & "Initial Catalog=OKYS;"       'Veritabanı Adı
 strCon = strCon & "Integrated Security=SSPI"
    
 con.Open (strCon)   'Veritabanına bağlantının kurulması
    
 strSQL = "SELECT * FROM Kisiler"        'Veritabanından okuma sorgusu
 rs.Open strSQL, con     'Kayıtların okunması

'Başlık satırının hazırlanması
 ActiveSheet.Range("A1:D1").Font.Bold = True
 ActiveSheet.Range("A1").Value = "Adı"
 ActiveSheet.Range("B1").Value = "Soyadı"
 ActiveSheet.Range("C1").Value = "TC Kimlik No"
 ActiveSheet.Range("D1").Value = "Doğum Tarihi"


 Range("D:D").NumberFormat = "dd/mm/yyyy"       'D kolonunun tarih formatlı yapılması

 r = 2     'Başlangıç satırını belirlenmesi
 
 Do Until rs.EOF     'Sonuncu kayıta kadar Loop satırına kadarki işlemleri yap
  ActiveSheet.Range("A" & r).Value = rs!KisiAdi       'Kişi Adını ilgili satırdaki A kolonuna ata
  ActiveSheet.Range("B" & r).Value = rs!KisiSoyadi  'Kişi Soyadını ilgili satırdaki B kolonuna ata
  ActiveSheet.Range("C" & r).Value = rs!TCKimlikNo  'TCKimlikNo'yu ilgili satırdaki C kolonuna ata
  ActiveSheet.Range("D" & r).Value = rs!DogumTarihi   'Doğum Tarihi'ni ilgili satırdaki D kolonuna ata
  r = r + 1       'Satır numarasını 1 artır
  rs.MoveNext     'Sonraki kayıta git
 Loop     'Do satırına dön

 rs.Close     'Kayıt kümesinin kapatılması
 con.Close     'Bağlantının kapatılması
End Sub

'----------------------------------------------------------------------------------------------------------------------

Prosedür





















Prosedür Çalıştıktan Sonra





















Bu blogdaki popüler yayınlar

Power BI'da Yeni Sütun Eklemek

Power BI Kullanımına Giriş

Power BI Üzerinde Fonksiyon Oluşturma ve Kullanma

Kümülatif Toplam

Ağırlıklı Ortalama Hesabı

SQL'de Group By Yaparak Rapor Oluşturmak

SQL'de Birden Fazla Tablodan Listeleme Yapmak

ETarihli Fonksiyonu

Bir Ürünün En Son Tarihli Fiyatının Bulunması