ADO Bağlantı ve Kayıtseti Nesnelerinin Açılması


İnceleme Beğeni Favori Değerlendirme Ortalama Puan Yıldız Sayısı
188 0 0 0 0
Reklam Alanı
Türkiye'nin en popüler Excel Portalındaki içeriklerin en başında reklamınızın yayınlanmasını ister misiniz?
Reklam vermek istiyorum
Bu makalemiz Excel’de hız severlere yönelik olarak hazırlanmış olup, ADO Bağlantı ve Kayıtseti Nesnelerinin Açılması işleminin nasıl yapılacağını öğretir.

ADO ve VBA hakkında ne kadar çok bilgiye sahipsek, bunların nimetlerinden de o derece yararlanabiliriz. Vba’da ADO ile başarılı uygulamalar geliştirebilmek için SQL konusunda temelin az üzerinde, Vba konusunda da ortalama üzeri bir bilgi ve beceriye sahibi olmamız gerekiyor. Bu nedenle verilen örneklerde Vba komutları veya SQL komutları açıklanmayacaktır.

ADO Bağlantı ve Kayıtseti Nesnelerinin Açılması


ADO bağlantı ve kayıtseti nesnelerini açmak için birkaç değişik yöntem kullanabiliriz.
Şimdi D:\exceldepo\exceldepodb.mdb yolunda bir Access mdb database dosyamız olduğunu düşünelim. (siz bu yolu istediğiniz gibi ayarlayabilirsiniz)
Tablomuzdaki alanlar ve veriler de aşağıdaki resimdeki gibi bir yapıda olsun.

ADO Kayıt Seti

VBA ortamında da bir modül ekleyelim ve sayfa başına aşağıdaki tanımlamaları yazalım. Modül olması şart değil, sayfa ve form da olabilir.
Dim BagMetin As String, Sorgu As String
Dim Baglanti As New ADODB.Connection
Dim KSeti As New ADODB.Recordset
Dim SqlKomut As New ADODB.Command
Burada nesneleri peşin peşin oluşturdum. Prosedür içinde ayrıca yeni nesne oluşturmaya gerek kalmayacak. Tanımlamaları prosedür içinde de yapabiliriz, ben dışında yapmayı tercih ettim.
Set Baglanti = New ADODB.Connection
Şimdi ADO bağlantı ve kayıtseti nesnelerini açmak için yöntemleri inceleyelim. Başka yöntemler de olabilir ancak en çok kullanılanları ele alacağız.
Bu arada Command, Connection, Record, Recordset ve Stream nesnelerinin durumlarını State özelliği ile öğrenebiliriz. Döndürülen değerler aşağıdaki gibi olacaktır:

BİR BAĞLANTI (ADODB.CONNECTION) NESNESİN AÇILMASI


Bir veritabanında işlem yapabilmek için önce bir bağlantı metnini ihtiyaç duyarız. Nasıl bağlanabiliyoruz bir bakalım.

1. Bir bağlantı (connection) nesnesini bağlantı metnine (connection string) eşitleyerek

Modül içinde aşağıdaki gibi Baglan adında bir prosedür yazalım. BagMetin değişkeni ve nesneleri sayfa başında tanımlamıştık.
Prosedürde önce BagMetin değişkenine bağlantı metnini atıyoruz. Burada bağlanacağımız veritabanı Excel sayfasıda, txt metni de, mysql veya mssql veritabanı sunucu da olabilir. Ben basitlik amacı ile mdb dosyası seçtim. Sonra tanımladığımız Baglantı nesnesinin (ADODB.Connection) ConnectionString özelliğine BagMetin değişkenini veya doğrudan bağlantı metnini eşitliyoruz. Bağlantıyı açıyoruz ve sonraki satırda Baglanti nesnesinin State (durum) özelliğini MsgBox ile görüntülüyoruz. Ekranda 1 yazıyorsa bağlantı açık demektir. Sonra bağlantı nesnesini kapatıp hafızadan siliyoruz be prosedürü sonlandırıyoruz.
Sub Baglan1()

 BagMetin = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 Baglanti.Open BagMetin
 
 MsgBox Baglanti.State
 
 Baglanti.Close
 Set Baglanti = Nothing

End Sub

2. Open() yöntemi yanında bir bağlantı metni veya metni içeren bir string değişken vererek

Bu yöntemde Bağlantı nesnesinin Open özelliğinden sonra bağlantı metnini yazıyoruz. Bir önceki yöntemden farkı, ConnectionString özelliğinin ayrıca tanımlanmaması sayılabilir. Bir satır daha az kod yazarız.
Sub Baglan2()

 Baglanti.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 
 MsgBox Baglanti.State
 
 Baglanti.Close
 Set Baglanti = Nothing

End Sub
3. Bağlantı (connection) nesnesinin Open() komutundan sonra doğrudan bağlantı metnini vererek

Bu yöntem bir önceki yöntemle birebir aynıdır. Burada Bağlantı metni Open özelliğinden sonra doğrudan tırnak içinde yazılmıştır. Burada da bir satır azalttık kodu.
Sub Baglan3()

 Baglanti.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 
 MsgBox Baglanti.State
 
 Baglanti.Close
 Set Baglanti = Nothing

End Sub
Bağlantı (ADODB.Connection) nesnesin açılmasını gördük. Bir veritabanınada işlem yapmak için bağlantımızı yapmayı öğrendik. Şimdi de kayıt seti (ADODB.Recordset) nesnesinin açılmasını görelim.

BİR KAYIT SETİ (ADODB.RECORDSET) NESNESİN AÇILMASI


Önce biraz hazırlık yapalım. Excelde Vba pencersinde Proje pencersinde Forms projelerine aşağıdaki bir user form ekleyelim. Deneyeceklere kodları okumada kolaylık açısından butonların ve listebox adını form üzerinde yazdım. Properties penceresinden Lisboxun columncount özelliğine 5 yazıyoruz.

ADO Nesnesi

Şimdi de uzatmadan kayıt seti açma yöntemlerine geçelim. Bağlantıyı yukarıda bahsettiğimiz istediğimiz bir yöntemle açabilirsiniz. Buradaki örneklerde 3. Yöntemi kullanacağız. Kod sayfası başına aşağıdakileri yazıyoruz yine. Her prosedürde de kod başlangıcında listboxtaki verileri temizleyeceğiz.
Dim BagMetin As String, Sorgu As String
Dim Baglanti As New ADODB.Connection
Dim KSeti As New ADODB.Recordset
Dim SqlKomut As New ADODB.Command

1. Kayıtsetini CONNECTION.EXECUTE Metodu ile Açma

Bu yöntem oldukça hızlı ve pratiktir. Veritabanını çok az meşgul eder. Örneğin kayıtsetinin getrows özelliği ile listboxları belki 25 kat yada daha hızlı doldurabilirsiniz. Kodları inceleyelim.
Bağlantı nesnesini sql sorgusuyla execute ederek sonuçları Kseti adlı kayıtsetine alıyoruz. Burdan listbox’un column özelliğne kayıtsetinin GetRows özelliğini atıyoruz ve veriler listboxta. Kayıtseti ve diğerlerini kapatıp hafızadan siliyoruz. Aslında ne kadar az kodla ne kadar çok iş yaptık değil mi?
Private Sub btnMtd1_Click()

 Me.ListBoxExcelDepo.Clear
 Sorgu = "SELECT * FROM Ilceler"
 Baglanti.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 
 Set KSeti = Baglanti.Execute(Sorgu)
 Me.ListBoxExcelDepo.Column = KSeti.GetRows
 KSeti.Close
 
 Baglanti.Close
 Set Baglanti = Nothing

End Sub
Elde ettiğimiz çıktı aşağıdaki gibi olacaktır:

ADO Sonuç

2. Kayıtsetini ADODB Command.Execute Metodu İle Açma

Bu yöntemde SqlKomut adında bir ADODB.Command nesnesi tanımlıyoruz ve sorguyu kamuta verip kayıtsetini bununla açıyoruz. SqlKomut.Execute(Sorgu) satırına dikkat edelim.
Private Sub btnMtd2_Click()
 Me.ListBoxExcelDepo.Clear
 Sorgu = "SELECT * FROM Ilceler"
 Baglanti.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 
 SqlKomut.ActiveConnection = Baglanti
 SqlKomut.CommandText = Sorgu
 
 Set KSeti = SqlKomut.Execute(Sorgu)
 Me.ListBoxExcelDepo.Column = KSeti.GetRows
 
 
 Baglanti.Close
 Baglanti.Close: KSeti = Nothing
End Sub
1. yöntemdeki ile aynı görüntüyü elde edeceğiz.

3. Kayıtsetini Recordset.Open ve Command.Execute Metodu İle Açma

Burada KSeti.Open SqlKomut satırına dikkat edelim. Kayıtsetini açarken yanında komut nesnesini veriyoruz.
Private Sub btnMtd3_Click()
 Me.ListBoxExcelDepo.Clear
 Sorgu = "SELECT * FROM Ilceler"
 Baglanti.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 
 SqlKomut.ActiveConnection = Baglanti
 SqlKomut.CommandText = Sorgu
 
 KSeti.Open SqlKomut

 Me.ListBoxExcelDepo.Column = KSeti.GetRows 
 Baglanti.Close
End Sub
Buradaki görüntüde, 1. yöntemin aynısı olacaktır.

4. Bağlantı ve Kayıtsetini Aynı Satırda Vererek Açma

Burada KSeti.Open "SELECT * FROM Ilceler", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb" satırına dikkat edelim. Her şeyi tek satırda verdik. Tabiki Kseti.Open dan sonra sorguyu ve bağlantı metnini içeren değişkeleri de yazabilirdik. Burada bağlantıyı açmadığımız için kapatmaya da gerek yok.
Private Sub btnMtd4_Click()
 Me.ListBoxExcelDepo.Clear
 KSeti.Open "SELECT * FROM Ilceler", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\exceldepo\exceldepodb.mdb"
 Me.ListBoxExcelDepo.Column = KSeti.GetRows
 KSeti.Close
End Sub
Buradaki görüntüde, 1. yöntemin aynısı olacaktır.

ADO Bağlantı ve Kayıtseti Nesnelerinin Açılması


Bu satıra geldiyseniz, makalemin tamamını okumuşsunuz demektir.
Teşekkür eder, faydalı olmasını temenni ederim.
Örnek dosyamı, https://www.exceldosyalari.com/ado-baglanti-ve-kayit-seti-acma-yontemleri adresinden indirebilirsiniz.

Yapacağınız yorumlar, soracağınız sorular devamının gelmesi için motivasyon sağlayacaktır.
ETİKETLER:
#excel #ado #adodb

Daha önce yorum yapılmamış!

Hücrelere açıklama eklemek Excel'in faydalı özelliklerinden biridir. Bu açıklamaları birer resim ile daha ilgi çekici hale getirmek için;
  1. önce sağ tıklayıp, Açıklama Ekle (Ofis 365 Not Ekle)
  2. Hücre sağ tıklayıp, Açıklama Düzenle (Ofis 365 Notu Düzenle)
  3. Açıklama/Not köşesine sağ tıklayıp, Açıklama Biçimlendir
  4. Ekrana gelen pencereden, Renkler ve çizgiler tabı seçme
  5. Dolgu bölümünden açılır listeye tıklama
  6. Dolgu efektleri seçme
  7. En sağdaki Resim sekmesini tıklama
  8. Resim seç diyerek istediğiniz resmi seçme ve tamam deme...

Hücre açıklamalarına resim ekleme
İLGİ ÇEKİCİ İÇERİKLER
İçerik Adı Ekleyen Tarih Tür
QR Kodu Oluşturma Programı admin 04 Şubat 2019 dosya
Küçük Harfe Dönüştürme admin 25 Temmuz 2019 dosya
Excelde Otomatik Kurtarma admin 05 Ekim 2019 video
BENZERSİZ Örneği admin 14 Nisan 2020 dosya
Kelime Kodlama admin 31 Mayıs 2018 dosya
Yükleniyor...