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

Macro'yla Borç Alacak Girişi ve Mizanı

ETarihli Fonksiyonu

Kümülatif Toplam

Excel Macro'da Tutar Hesaplamaları

Dinamik Grafik Hazırlanması

Power BI Kullanımına Giriş

Eğer Benzerse

Macro'da For-Next ve If Kullanarak Koşullu Toplam