aeGNoR
Destek Ekibi
Konuyu Başlatan
Arkadaşlar merhaba,
Excel kullanımı sırasında zaman zaman kullandığımız excel dışındaki dosyalara başvurmamız gerekebiliyor. VBA ile bu duruma çeşitli çözümler üretebiliyoruz elbette, fakat çözümler içerisinde çok pratik ve hızlı olan ama genelde dikkate alınmayan ADO yöntemini elimden geldiğince anlatmaya çalışacağım.
Öncelikle ADO'nun tanımı ile başlamakta fayda görüyorum;
ActiveX Data Object olarak adlandırdığımız VERİ NESNESİ'dir. Peki nedir bu veri nesnesi? Veri kaynağı ile kullandığımız arayüz arasında iletişimi kuran ve veri akışını sağlayan nesne olarak tanımlayabiliriz.
ADO nesnesini, vbe references penceresinden kullanıma açabiliyoruz;

ADO'yu kullanırken en sade hali ile 2 (iki) temel nesneye başvururuz.
Bunlardan bir tanesi "ADODB.Connection" nesnesidir.
Bir diğeri ise "ADODB.Recordset" nesnesidir.
Connection nesnesi adı üstünde veri kaynağımız ile bağlantı kurmamızı, iletişime geçmemizi sağlayan nesnedir.
Bir çok özellik, yordam içeriyor olmasına rağmen temelde işimize yarayacak özellik "ConnectionString" olacak.
Yine yordamlar içerisinde Open, Close yordamlarını sık sık kullanıyor olacağız.
Öncelikle connection nesnesinin değişken olarak tanımlama yöntemleri ile başlayalım. Bu yöntemler early binding ve late binding olarak ikiye ayrılır.

ekran görüntüsünde de anlaşılacağı gibi early binding yönteminde dim tanımlaması yaparken nesnemizi oluşturmuş oluyoruz. Late binding yönteminde ise nesnemiz daha sonraki satır içinde set ile tanımlanmaktadır.
Late binding yönteminde ayrıca değişkenimiz önce object olarak tanımlanıp daha sonra CreateObject() ile de tanımlanabilir. Örnek;
Dim conn as Object
Set conn = CreateObject("ADODB.Connection")
aynı şeyler Recordset nesnemizi tanımlamak için de geçerli olacaktır.
(Bu süreçten sonra connection nesnemizden con olarak bahsedeceğim.)
nesnemizi tanımladıktan sonra sıra bağlantımızı açma ve kapamaya geldi. veritabanı ile bağlantı kurabilmek için kullanacağımız yöntem
con.open şeklinde olacaktır. Bağlantıyı gerçekleştirip yapmamız gereken işlemleri yaptıktan sonra ise con.close ile bağlantıyı kapatmamız gerekiyor.
con.open yönteminde ConnectionString parametresi ile veritabanı sağlayıcımızı, veri yolumuzu, güvenlik gibi bilgilerimizi tanımlamış olmamız gerekiyor. Bu tanımlamalarda herhangi bir hata yapmamız nesnemizin veri kaynağımıza bağlanamaması ile sonuçlanacaktır.
ConnectionString özelliğini önceden tanımlayabileceğimiz gibi bağlantı sırasında da tanımlayabiliyoruz.
Örnek olarak;
'bağlantı dizesini önceden tanımlama yöntemi
con.ConnectionString = "Bağlantı dizemiz"
con.open
'bağlantı dizesini bağlanırken tanımlama yöntemi
con.open "Bağlantı dizemiz"
Peki oldukça uzun olan bağlantı dizemizi ezberlememiz mi gerekiyor? Hayır. bunun için
Önemli Not: anlatım sırasında örnekler, dosyalar paylaşacağım. Paylaştığım örneklerden kendi sistemime uygun bağlantı dizeleri gerçekleştireceğim. İnternette bulduğum örnek verisetleri üzerinde işlemler yapacağım.
Kaynaklar:
Verisetleri için başvurduğum
Kaynağım içerisinden örnek olarak kullandığım verisetleri; FoodSales, WorkOrders, Orders, InsurancePolicy olacaktır. Benimle birlikte bu örnekleri gerçekleştirmek isteyenlerin bu tabloları sisteminde hazır bulundurmalarında fayda vardır.
İlk konumu burada tamamlıyorum. Konunun devamını vakit buldukça "AYNI BAŞLIK" altında devam ettireceğim. Yaptığımız bu başlangıcın üzerine kata kata gideceğiz diye umuyorum.
Konuyu tamamlamadan önce veritabanımıza ilk erişimimizi yapalım ve öyle kapatalım.
İlk olarak FoodSales veritabanına erişelim. Benim FoodSales veritabamınım konumu "D:\VBA\ADO" şeklinde olduğu için ben bağlantı dizelerimde bu yolu kullanacağım.
Veritabanına bağlantı kodu;
Excel kullanımı sırasında zaman zaman kullandığımız excel dışındaki dosyalara başvurmamız gerekebiliyor. VBA ile bu duruma çeşitli çözümler üretebiliyoruz elbette, fakat çözümler içerisinde çok pratik ve hızlı olan ama genelde dikkate alınmayan ADO yöntemini elimden geldiğince anlatmaya çalışacağım.
Öncelikle ADO'nun tanımı ile başlamakta fayda görüyorum;
ActiveX Data Object olarak adlandırdığımız VERİ NESNESİ'dir. Peki nedir bu veri nesnesi? Veri kaynağı ile kullandığımız arayüz arasında iletişimi kuran ve veri akışını sağlayan nesne olarak tanımlayabiliriz.
ADO nesnesini, vbe references penceresinden kullanıma açabiliyoruz;

ADO'yu kullanırken en sade hali ile 2 (iki) temel nesneye başvururuz.
Bunlardan bir tanesi "ADODB.Connection" nesnesidir.
Bir diğeri ise "ADODB.Recordset" nesnesidir.
Connection nesnesi adı üstünde veri kaynağımız ile bağlantı kurmamızı, iletişime geçmemizi sağlayan nesnedir.
Bir çok özellik, yordam içeriyor olmasına rağmen temelde işimize yarayacak özellik "ConnectionString" olacak.
Yine yordamlar içerisinde Open, Close yordamlarını sık sık kullanıyor olacağız.
Öncelikle connection nesnesinin değişken olarak tanımlama yöntemleri ile başlayalım. Bu yöntemler early binding ve late binding olarak ikiye ayrılır.

ekran görüntüsünde de anlaşılacağı gibi early binding yönteminde dim tanımlaması yaparken nesnemizi oluşturmuş oluyoruz. Late binding yönteminde ise nesnemiz daha sonraki satır içinde set ile tanımlanmaktadır.
Late binding yönteminde ayrıca değişkenimiz önce object olarak tanımlanıp daha sonra CreateObject() ile de tanımlanabilir. Örnek;
Dim conn as Object
Set conn = CreateObject("ADODB.Connection")
aynı şeyler Recordset nesnemizi tanımlamak için de geçerli olacaktır.
(Bu süreçten sonra connection nesnemizden con olarak bahsedeceğim.)
nesnemizi tanımladıktan sonra sıra bağlantımızı açma ve kapamaya geldi. veritabanı ile bağlantı kurabilmek için kullanacağımız yöntem
con.open şeklinde olacaktır. Bağlantıyı gerçekleştirip yapmamız gereken işlemleri yaptıktan sonra ise con.close ile bağlantıyı kapatmamız gerekiyor.
con.open yönteminde ConnectionString parametresi ile veritabanı sağlayıcımızı, veri yolumuzu, güvenlik gibi bilgilerimizi tanımlamış olmamız gerekiyor. Bu tanımlamalarda herhangi bir hata yapmamız nesnemizin veri kaynağımıza bağlanamaması ile sonuçlanacaktır.
ConnectionString özelliğini önceden tanımlayabileceğimiz gibi bağlantı sırasında da tanımlayabiliyoruz.
Örnek olarak;
'bağlantı dizesini önceden tanımlama yöntemi
con.ConnectionString = "Bağlantı dizemiz"
con.open
'bağlantı dizesini bağlanırken tanımlama yöntemi
con.open "Bağlantı dizemiz"
Peki oldukça uzun olan bağlantı dizemizi ezberlememiz mi gerekiyor? Hayır. bunun için
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
sitesinden bize uygun olan bağlantı dizesini bulup kopyalayabiliriz. Kopyaladığımız bağlantı içindeki veri yolunu kendi veritabanımıza göre düzenlememiz gerekir.Önemli Not: anlatım sırasında örnekler, dosyalar paylaşacağım. Paylaştığım örneklerden kendi sistemime uygun bağlantı dizeleri gerçekleştireceğim. İnternette bulduğum örnek verisetleri üzerinde işlemler yapacağım.
Kaynaklar:
Verisetleri için başvurduğum
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
Kaynağım içerisinden örnek olarak kullandığım verisetleri; FoodSales, WorkOrders, Orders, InsurancePolicy olacaktır. Benimle birlikte bu örnekleri gerçekleştirmek isteyenlerin bu tabloları sisteminde hazır bulundurmalarında fayda vardır.
İlk konumu burada tamamlıyorum. Konunun devamını vakit buldukça "AYNI BAŞLIK" altında devam ettireceğim. Yaptığımız bu başlangıcın üzerine kata kata gideceğiz diye umuyorum.
Konuyu tamamlamadan önce veritabanımıza ilk erişimimizi yapalım ve öyle kapatalım.
İlk olarak FoodSales veritabanına erişelim. Benim FoodSales veritabamınım konumu "D:\VBA\ADO" şeklinde olduğu için ben bağlantı dizelerimde bu yolu kullanacağım.
Veritabanına bağlantı kodu;
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.