Özellik ikonu

OLE DB ve ODBC

İndirme izni yok

Genel Bakış

OLE DB ve ODBC (OLE DB and ODBC), Excel'in SQL Server, Access, Oracle gibi veritabanlarına ve başka dış veri kaynaklarına bağlanmak için kullandığı iki standart veri erişim teknolojisidir. Excel bu teknolojiler sayesinde veriyi kopyalamadan çalışma kitabına çeker, sorgular ve tek tıkla yeniler. İkisinin de çalışması için bilgisayarda uygun bir sağlayıcı (OLE DB) ya da sürücü (ODBC) kurulu olmalıdır.

Nerede bulunur​

Excel'de bu bağlantılara şu yollarla ulaşırsınız:
  • Veri > Veri Al ve Dönüştür > Veri Al > Diğer Kaynaklardan > OLE DB'den (Data > Get Data > From Other Sources > From OLE DB) ve ODBC'den (From ODBC): Power Query üzerinden bağlantı kurar. Bu yöntem Excel 2016 ve sonrasında, Microsoft 365'te ve Excel 2010/2013 için Power Query eklentisinde bulunur.
  • Veri > Veri Al > Eski Sihirbazlar > Veri Bağlantı Sihirbazı (Data > Get Data > Legacy Wizards > From Data Connection Wizard) ve Microsoft Query'den (From Microsoft Query): Eski yöntemlerdir. Varsayılan olarak gizlidir; Dosya > Seçenekler > Veri (File > Options > Data) bölümünde ilgili eski sihirbaz seçeneklerini işaretleyerek görünür hale getirirsiniz.
  • Veri > Sorgular ve Bağlantılar (Data > Queries & Connections): Kitaptaki bağlantıları listeler. Bağlantıya sağ tıklayıp Özellikler (Properties) seçerek bağlantı dizesini ve yenileme ayarlarını görürsünüz.
  • ODBC veri kaynaklarını (DSN) tanımlamak için Windows'ta ODBC Veri Kaynakları (ODBC Data Sources) aracı kullanılır; 32 bit ve 64 bit sürümleri ayrıdır.

OLE DB ile ODBC arasındaki fark​

Her ikisi de Excel ile veri kaynağı arasında aracı katmandır, ancak yapıları farklıdır:
  • OLE DB: Microsoft'un COM tabanlı veri erişim arayüzüdür. Bağlantı dizesinde Provider ile bir sağlayıcı adı verilir. Örnekler: MSOLEDBSQL (SQL Server için Microsoft OLE DB Driver), Microsoft.ACE.OLEDB.12.0 (Access ve Excel dosyaları için). OLE DB yalnız ilişkisel veritabanlarına değil, ilişkisel olmayan kaynaklara da erişebilir.
  • ODBC: Sektör genelinde kullanılan, işletim sisteminden bağımsız tasarlanmış bir standarttır. Bağlantı dizesinde Driver ile bir sürücü adı ya da DSN ile önceden tanımlı bir veri kaynağı adı verilir. Birçok veritabanı üreticisi kendi ODBC sürücüsünü sunar.
  • Birlikte kullanım: Yalnız ODBC sürücüsü bulunan bir kaynağa OLE DB üzerinden erişmek için OLE DB Provider for ODBC Drivers (MSDASQL) sağlayıcısı aracılık eder.
Kaynağınız için üreticinin güncel OLE DB sürücüsü varsa genellikle onu, yoksa ODBC sürücüsünü seçersiniz. Eski SQLOLEDB ve SQL Server Native Client sağlayıcıları artık güncel değildir; yeni çalışmalarda Microsoft OLE DB Driver for SQL Server ya da ODBC Driver for SQL Server tercih edilir.

Nasıl kullanılır​

ODBC kaynağına Power Query ile bağlanmak için şu adımları izleyin:
  1. Veri > Veri Al > Diğer Kaynaklardan > ODBC'den komutunu seçin.
  2. Açılan pencerede listeden bir DSN seçin ya da Veri kaynağı adı (DSN) yerine bağlantı dizesini Gelişmiş seçenekler (Advanced options) bölümüne yazın. İsterseniz bir SQL deyimi de verebilirsiniz.
  3. İstenirse Windows, Veritabanı ya da Varsayılan veya Özel kimlik bilgilerinizi girin.
  4. Gezgin (Navigator) penceresinden tabloyu seçin; Yükle (Load) ile sayfaya aktarın ya da Veriyi Dönüştür (Transform Data) ile Power Query düzenleyicisinde şekillendirin.
  5. Veri değiştiğinde Veri > Tümünü Yenile (Data > Refresh All) ile güncelleyin.
OLE DB için adımlar aynıdır; yalnız OLE DB'den seçilir ve bağlantı dizesi Provider ile başlar. Bağlantı özelliklerinde Arka planda yenilemeyi etkinleştir, Dosya açılırken verileri yenile ve Her ... dakikada bir yenile gibi seçenekleri kullanabilirsiniz.

Bağlantı dizesi ve güvenlik​

Bağlantı dizesi noktalı virgülle ayrılmış anahtar=değer çiftlerinden oluşur. Tipik anahtarlar şunlardır:
  • Provider: OLE DB sağlayıcısının adı.
  • Driver: ODBC sürücüsünün adı; süslü parantez içinde yazılır.
  • DSN: Önceden tanımlı ODBC veri kaynağı adı.
  • Server ve Database: Sunucu ve veritabanı adı. Access dosyalarında Data Source ile dosya yolu verilir.
  • Trusted_Connection=yes: Windows kimlik doğrulamasını kullanır.
  • UID ve PWD: Kullanıcı adı ve parola (SQL kimlik doğrulaması).
Dış veri bağlantıları güvenlik nedeniyle dosya açıldığında devre dışı kalabilir; sarı uyarı çubuğundaki İçeriği Etkinleştir (Enable Content) düğmesini kullanarak ya da Güven Merkezi ayarlarından izin verirsiniz. Parolayı bağlantı dizesinde saklamak güvenli değildir; mümkünse Windows kimlik doğrulaması kullanın.

1. Bağlantı dizesinden teknolojiyi ve sunucuyu ayıklama​

Kitabınızdaki bağlantı dizelerini B sütununa yazın. C sütununda dizenin OLE DB mi ODBC mi olduğunu, D sütununda ise Server= anahtarından sunucu adını bulun. C2 ve D2 hücrelerine formülleri yazıp aşağı doğru kopyalayın.
OLE DB ve ODBC
Formülünü incelemek için bir hücre seçin.
ABCD
1Bağlantı AdıBağlantı DizesiTeknolojiSunucu
2Satış SQLProvider=MSOLEDBSQL;Server=SUNUCU01;Database=Satis;Trusted_Connection=yes;OLE DBSUNUCU01
3MuhasebeDriver={ODBC Driver 17 for SQL Server};Server=SUNUCU02;Database=Muhasebe;Trusted_Connection=yes;ODBCSUNUCU02
4StokDSN=StokDB;UID=okuyucu;ODBCYok
5Personel AccessProvider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Veri\Personel.accdb;OLE DBYok
6Üretim OracleDriver={Oracle in OraClient19};Dbq=URETIM;ODBCYok
Bağlantı EnvanteriExcelDepo v1.0.0
Provider= anahtarı OLE DB sağlayıcısına, Driver= ya da DSN= ise ODBC'ye işaret eder. İlk bağlantı için C2 hücresi OLE DB, sunucu adı SUNUCU01 sonucunu verir. Stok bağlantısı DSN kullandığı için D4 hücresi Yok gösterir; sunucu bilgisi DSN tanımının içinde saklanır, bağlantı dizesinde yer almaz.

2. ODBC bağlantı dizesi oluşturma​

Sunucu, veritabanı ve kimlik doğrulama türünü ayrı sütunlara yazın. E2 hücresindeki formül, kimlik doğrulama Windows ise Trusted_Connection=yes, SQL ise UID= ekleyerek ODBC bağlantı dizesini üretir. Dizeyi Veri > Veri Al > Diğer Kaynaklardan > ODBC'den penceresindeki Gelişmiş seçenekler bölümüne yapıştırabilirsiniz.
OLE DB ve ODBC
Formülünü incelemek için bir hücre seçin.
ABCDE
1SunucuVeritabanıKimlik DoğrulamaKullanıcı AdıBağlantı Dizesi
2SUNUCU01SatisWindows-Driver={ODBC Driver 17 for SQL Server};Server=SUNUCU01;Database=Satis;Trusted_Connection=yes;
3SUNUCU02MuhasebeSQLrapor_userDriver={ODBC Driver 17 for SQL Server};Server=SUNUCU02;Database=Muhasebe;UID=rapor_user;
4IZMIR-SQLDepoWindows-Driver={ODBC Driver 17 for SQL Server};Server=IZMIR-SQL;Database=Depo;Trusted_Connection=yes;
5ANKARA-SQLPersonelSQLik_okuyucuDriver={ODBC Driver 17 for SQL Server};Server=ANKARA-SQL;Database=Personel;UID=ik_okuyucu;
Dizge OluşturucuExcelDepo v1.0.0
Windows kimlik doğrulamalı ilk satırda E2 hücresi Driver={ODBC Driver 17 for SQL Server};Server=SUNUCU01;Database=Satis;Trusted_Connection=yes; dizesini üretir. SQL kimlik doğrulamalı ikinci satırda E3 hücresi Driver={ODBC Driver 17 for SQL Server};Server=SUNUCU02;Database=Muhasebe;UID=rapor_user; sonucunu verir. Parolayı (PWD=) bilerek dizeye eklemedik; parola gerektiğinde Excel bağlantı sırasında sizden ister, böylece parola dosyada açık metin olarak kalmaz.

3. Tarih aralığı için SQL komut metni hazırlama​

Bağlantı özelliklerindeki Komut metni (Command text) alanına ya da ODBC penceresindeki SQL deyimi kutusuna yazılacak sorguyu hücrelerdeki tablo adı ve tarihlerden üretin. Tarihleri YIL-AA-GG biçiminde (ISO) yazmak, sunucunun bölgesel ayarlarından bağımsız çalışmasını sağlar. E2 hücresine formülü yazıp aşağı kopyalayın.
OLE DB ve ODBC
Formülünü incelemek için bir hücre seçin.
ABCDE
1TabloTarih AlanıBaşlangıçBitişSQL Sorgusu
2SiparislerSiparisTarihi01.01.202431.03.2024SELECT * FROM Siparisler WHERE SiparisTarihi BETWEEN '2024-01-01' AND '2024-03-31'
3FaturalarFaturaTarihi01.04.202430.06.2024SELECT * FROM Faturalar WHERE FaturaTarihi BETWEEN '2024-04-01' AND '2024-06-30'
4SevkiyatlarSevkTarihi15.07.202431.07.2024SELECT * FROM Sevkiyatlar WHERE SevkTarihi BETWEEN '2024-07-15' AND '2024-07-31'
SQL KomutlarıExcelDepo v1.0.0
E2 hücresi SELECT * FROM Siparisler WHERE SiparisTarihi BETWEEN '2024-01-01' AND '2024-03-31' komutunu üretir; E3 hücresindeki sorgu SELECT * FROM Faturalar WHERE FaturaTarihi BETWEEN '2024-04-01' AND '2024-06-30', E4 hücresindeki sorgu SELECT * FROM Sevkiyatlar WHERE SevkTarihi BETWEEN '2024-07-15' AND '2024-07-31' olur. Üretilen metni bağlantının Komut metni alanına yapıştırırsanız Excel yalnız o tarih aralığındaki kayıtları getirir. Access veritabanlarında tarihler tek tırnak yerine # işaretiyle yazılır; sorgu söz dizimi veri kaynağına göre değişir.

Kullanırken dikkat edin​

  • 32 bit ve 64 bit uyumu: Excel'in bit sürümü ile sürücünün ya da sağlayıcının bit sürümü aynı olmalıdır. 64 bit Excel yalnız 64 bit sürücüleri görür. ODBC Veri Kaynakları aracının 32 bit ve 64 bit sürümleri ayrı DSN listeleri tutar; DSN'i yanlış sürümde tanımlarsanız Excel onu bulamaz. Microsoft.ACE.OLEDB.12.0 sağlayıcısının 32 bit ve 64 bit sürümlerini aynı bilgisayarda birlikte kurmak da sorun çıkarabilir.
  • Sürücü ya da sağlayıcı bulunamadı hatası: Dosyayı başka bir bilgisayarda açtığınızda aynı sürücü kurulu değilse bağlantı yenilenmez. Bağlantıyı paylaştığınız kişilerde de aynı sürücünün, aynı DSN adıyla ya da DSN'siz bağlantı dizesiyle erişilebilir olduğundan emin olun. DSN'siz (Driver= ile yazılan) bağlantılar dosyanın taşınmasını kolaylaştırır.
  • Parola ve kimlik bilgisi güvenliği: Bağlantı dizesine yazdığınız PWD= değeri dosyada okunabilir biçimde kalabilir. Gerektiğinde Windows kimlik doğrulamasını, ya da Veri Kaynağı Ayarları (Data Source Settings) penceresinden yönetilen kimlik bilgilerini tercih edin. Dosyayı paylaşmadan önce Veri > Sorgular ve Bağlantılar bölümünden bağlantı özelliklerini gözden geçirin.
  • Yenileme ve performans: Çok büyük tabloları sayfaya yüklemek yerine sorguda sütun ve satır sayısını SQL ile sınırlayın. Excel çalışma sayfası sınırı 1.048.576 satırdır; daha büyük veri için veri modeline (Data Model) yükleyin. Arka planda yenileme açıksa Excel'i kullanmaya devam edebilirsiniz, ancak birden fazla bağlantı sırayla yenilenecekse bağlantı sırasına dikkat edin.
  • VBA ile bağlantıları yönetme: VBA'da kitaptaki bağlantılar ThisWorkbook.Connections koleksiyonunda bulunur. Her WorkbookConnection nesnesinin Type özelliği bağlantının OLE DB ya da ODBC olduğunu bildirir; ayrıntılar OLEDBConnection ve ODBCConnection nesnelerinde tutulur. Bağlantı dizesi Connection özelliğinde, SQL deyimi CommandText özelliğinde yer alır; yenilemek için Refresh yöntemi kullanılır.
  • İlgili konular: Veri Al ve Dönüştür (Power Query), Sorgular ve Bağlantılar bölmesi, Veri Kaynağı Ayarları, Microsoft Query, Veri Modeli, Özet Tablo, Tümünü Yenile, Çalışma Kitabı Bağlantıları, VBA'da WorkbookConnection, OLEDBConnection, ODBCConnection ve QueryTable nesneleri. Formül tarafında bağlantı dizelerini ayrıştırmak için EĞERHATA, MBUL, PARÇAAL, SAĞDAN, YIL, AY ve GÜN işlevleri kullanılır.
Örneklerdeki tabloları indirilebilir Excel dosyasında kendiniz de deneyebilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
9
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst