Access'i SQL Server'a bağlama
Harf şeklindeki makarnaları yediğiniz eğlenceli çocukluk günlerinizi hatırlayın. Veritabanının harf şeklindeki makarnalarını tadarken bu mutlu anıyı aklınızda tutun. Aşağıdaki bölümler, bağlantı dizeleriyle veritabanına erişim ve Access VBA kodunuzda veritabanı programlama arabirimi kullanmanın temellerini ortaya koyar.
ODBC sürücüsü veya OLE DB sağlayıcısı kullanma
Access’ten SQL Server’a program arabirimiyle bağlanma
ODBC sürücüsü sürümlerinin özeti
OLE DB sağlayıcısı sürümlerinin özeti
ODBC anahtar sözcüğü özeti
OLE DB anahtar sözcüğü özeti
Bağlantı dizeleri uzun zamandır kullanılıyor. Biçimlendirilen bağlantı dizesini Access kullanıcı arabiriminde veya VBA kodunda tanımlayabilirsiniz. Bağlantı dizesiyle (ODBC veya OLE DB) sunucu konumu, veritabanı adı, güvenlik türü ve diğer kullanışlı seçenekler gibi bilgiler doğrudan veritabanına aktarılır. Örneğin:
En başta, ODBC ve OLEDB teknolojilerini içeren tek başına bir kitaplık olan SQL Server Native Client (SNAC) vardı ve SQL Server 2005’ten 2012’a kadarki sürümlerde hala kullanılabiliyor. Birçok eski uygulama SNAC kullanıyordu ve geriye dönük uyumluluğu hala desteklenmeye devam etse de yeni uygulama geliştirirken kullanılmasını önermiyoruz. ODBC sürücülerinin daha sonraki tek tek, indirilebilir sürümlerini kullanmalısınız.
Açık Veritabanı Bağlantısı (ODBC), Access veritabanını Microsoft SQL Server gibi bir dış veri kaynağına bağlamak için kullanabileceğiniz bir protokoldür. Genel olarak, dosya veri kaynaklarını (DSN dosyaları olarak da bilinir) bağlantı dizesi eklemek için kullanırsınız. Bu durumda FILEDSN anahtar sözcüğü bağlantı dizesinde kullanılır veya kayıt defterinde depolanır (bu durumda DSN anahtar sözcüğü kullanılır). Alternatif olarak “DSN’siz” bağlantı dizesi kullanarak özellikleri ayarlamak için VBA’yı kullanabilirsiniz.
Yıllar içinde ODBC sürücüleri üç aşamada gönderildi:
2005’ten önce, ODBC sürücüleri Windows Veri Erişimi Bileşenleri (WDAC) ile teslim ediliyordu. Bunlar da başlangıçta Microsoft Veri Erişimi Bileşenleri (MDAC) olarak adlandırılıyordu. Bu bileşenler geriye dönük uyumluluğu sağlamak için Windows ile dağıtılmaya devam ediyor. Daha fazla bilgi için bkz. Microsoft veya Windows Veri Erişimi Bileşenleri.
ODBC sürücüleri SQL Server 2005’ten SQL Server 2012’ye kadar SNAC ile gönderiliyordu.
SQL Server 2012’den sonra ODBC Sürücüleri ayrı ayrı dağıtıldı ve yeni SQL Server özellikleri için destek içermeye başladı.
Yeni geliştirme işlemi için ilk iki aşamadan kalma ODBC sürücülerini kullanmaktan kaçının ve üçüncü aşamanın ODBC sürücülerini kullanın.
OLE DB sağlayıcıları
Nesne Bağlama ve Katıştırma Veritabanı (OLE DB), bir Access veritabanını Microsoft SQL Server gibi bir dış veri kaynağına bağlamak için kullanabileceğiniz daha yeni bir protokoldür. OLE DB, DSN gerektirmez ve ODBC veri kaynaklarıyla ODBC sürücülerine tam erişim sağlar.
İpucu Genellikle OLE DB bağlantı dizesi eklemek için Veri Bağlantısı Özellikleri iletişim kutusunu kullanırsınız. Access’ten Veri Bağlantısı Özellikleri iletişim kutusunu açmanın hiçbir yolu olmasa da Windows Gezgini’nde boş bir .txt dosyası oluşturabilir ve dosya türünü .udl olarak değiştirip dosyaya çift tıklayabilirsiniz. Bağlantı dizesi oluşturduktan sonra dosya türünü yeniden .txt olarak değiştirin.
Yıllar içinde OLE DB sağlayıcıları üç aşamada gönderildi:
2005’ten önce, OLE DB sağlayıcıları Windows Veri Erişimi Bileşenleri (WDAC) ile teslim ediliyordu. Bunlar da başlangıçta Microsoft Veri Erişimi Bileşenleri (MDAC) olarak adlandırılıyordu.
OLE DB sağlayıcıları SQL Server 2005’ten SQL Server 2017’ye kadar SNAC ile gönderiliyordu. 2011’de bunlar kullanımdan kaldırıldı.
2017’de SQL Server OLE DB sağlayıcısı yeniden kullanıma sunuldu.
Yeni çözüm geliştirmek için şu anda önerilen sürüm SQL Server için OLE DB Driver 18’dir.
ODBC bağlantı dizesiyle performansı iyileştirme
Performansı iyileştirmek, ağ trafiğini en aza indirmek ve SQL Server Veritabanına çok kullanıcılı erişimi azaltmak için bağlantı dizelerini birden çok kayıt kümesi arasında paylaşarak olabildiğince az bağlantı dizesi kullanın. Access, bağlantı dizesini doğrudan sunucuya geçirse de şu anahtar sözcükleri anlar ve kullanır: DSN, DATABASE, UID, PWD ve DRIVER. Bu da istemci/sunucu iletişimini en aza indirmeye yardımcı olur.
Not Dış veri kaynağına giden bir ODBC bağlantısı kesilirse Access otomatik olarak yeniden bağlanmaya çalışır. Yeniden deneme başarılı olursa çalışmanıza devam edebilirsiniz. Yeniden deneme başarısız olursa, bağlantıya dayalı olmayan nesnelerle çalışabilirsiniz. Yeniden bağlanmak için Access’i kapatıp yeniden açın.
ODBC ve OLE DB kullanma önerileri
Bağlantı dizesi ile veritabanı erişim teknolojilerini karıştırmaktan kaçının. DAO için bir ODBC bağlantı dizesi kullanın. ADO için bir OLE DB bağlantı dizesi kullanın. Uygulamanız hem DAO hem de ADO kullanan VBA kodu içeriyorsa, DAO için ODBC sürücüsünü, ADO için de OLE DB sağlayıcısını kullanın. Sırasıyla hem ODBC hem de OLEDB için en son özellikleri ve desteği elde etmeye çalışın.
ODBC sürücü terimini ve OLE DB de sağlayıcı terimini kullanır. Bu terimler aynı tür yazılım bileşenini açıklar ama bağlantı dizesi söz diziminde birbirinin yerine kullanılamaz. Belgelerde belirtilen doğru değeri kullanın.
Access’ten SQL Server veritabanına program arabirimiyle bağlanmanın başlıca iki yolu vardır.
Veri erişim nesnesi (DAO), veritabanına soyut bir arabirim sağlar. Microsoft Veri Erişim Nesneleri (DAO); Access ve SQL Server’ın kalbine ulaşarak nesneleri, tabloları, alanları, dizinleri, ilişkileri, sorguları, özellikleri ve dış veritabanlarını oluşturmanızı, silmenizi ve değiştirmenizi sağlayan bir yerel programlama nesnesi modelidir.
Daha fazla bilgi için bkz. Microsoft Veri Erişim Nesneleri başvurusu.
ActiveX Veri Nesneleri (ADO) Access’te bir üçüncü taraf kitaplığına başvuruyla kullanılabilen üst düzey bir programlama modelidir. ADO rahatça öğrenilebilir ve istemci uygulamalarının Access ile SQL Server da dahil olmak üzere çeşitli kaynaklardan gelen verilere erişmesine ve bu verileri işlemesine olanak tanır. Birincil avantajları kullanım kolaylığı, yüksek hız, düşük bellek yükü ve diskte az parmak izidir. ADO, Web tabanlı uygulamalar derlemeye yönelik temel özellikleri de destekler.
Daha fazla bilgi için bkz. Microsoft ActiveX Veri Nesneleri başvurusu ve Microsoft ActiveX Veri Nesneleri (ADO).
VBA kodu kullanan bir Access çözümünde veritabanı arabirimi teknolojiniz olarak DAO'yu, ADO'yu veya ikisini birden kullanabilirsiniz. DAO Access’te varsayılan olmaya devam eder. Örneğin tüm formlar, raporlar ve Access sorguları DAO kullanır. Ama SQL Server’a geçtiğinizde çözümünüzü daha verimli bir hale getirmek için ADO kullanmayı göz önünde bulundurun. Burada DAO veya ADO kullanmaya karar vermenize yardımcı olacak genel yönergeleri bulabilirsiniz.
Aşağıdakileri yapmak istediğinizde DAO kullanın:
VBA kullanmadan bağlı okuma/yazma formu oluşturma.
Yerel tabloları sorgulama.
Verileri geçici tablolara indirme.
Salt okunur modda raporlar veya formlar için veri kaynağı olarak doğrudan sorguları kullanma.
VBA’da bir TableDef veya QueryDef nesnesi tanımlama ve kullanma.
Aşağıdakileri yapmak istediğinizde ADO kullanın:
Zaman uyumsuz işlemler yapmak gibi iyileştirmeye yönelik ek yöntemlerden yararlanma.
DDL ve DML doğrudan sorgularını çalıştırma.
SQL Server verilerine doğrudan VBA’daki kayıt kümeleri aracılığıyla erişme.
Blob’ların akışı gibi bazı görevler için daha basit kodlar yazma.
VBA'da komut nesnesi kullanarak parametrelerle doğrudan bir saklı yordam çağırma.
Aşağıdaki tabloda ODBC sürücüsü sürümleri, indirme konumları ve özellik desteği hakkında önemli bilgiler özetlenmiştir. Office'i değil Windows'u temel alarak sürücünün doğru bit sürümünü (64 bit veya 32 bit) kullandığınızdan emin olun. 64 bit Windows üzerinde 32 bit Access çalıştırıyorsanız, 64 bit sürücüleri yükleyin. Bunlar Access için gereken 32 bit bileşenleri de içerir.
Daha fazla bilgi için bkz. SQL Server Native Client ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma, Windows Üzerinde SQL Server'a ODBC için Sürüm Notları (V17) ve Windows Üzerinde SQL Server için Microsoft ODBC Sürücüsü'nün Özellikleri (V13, 11).
ODBC Sürücüleri 17.0 - 17.3
ODBC Sürücüsü 17.3
ODBC Sürücüsüyle Azure Active Directory Kullanma
Always Encrypted kullanıldığında ODBC sürücüsünün sınırlamaları
XA İşlemlerini kullanma
ODBC Sürücüsü 17.2
SQL Server için ODBC Sürücüsüyle Always Encrypted Kullanma
UTF-8 sunucu kodlama Harmanlama ve Unicode desteği
ODBC Sürücüsü 17.1
ODBC Sürücüsü 17.0
UseFMTONLY Geçici tablolar gerektiren özel durumlarda eski meta verileri kullanmak için. Bkz. Windows Üzerinde SQL Server için ODBC Sürüm Notları
Yönetilen Örnek kullanıldığında farklılıklar (ODBC sürüm 17)
ODBC Sürücüsü 13.1
AlwaysOn Kullanılabilirlik Grupları
SQL Server için ODBC Sürücüsünde Sürücü Algılamalı Bağlantı Havuzu
ODBC Sürücüsü 13.0
Uluslararası Etki Alanı Adı (IDN)
ODBC Sürücüsü 11.0
Sürücü Algılamalı Bağlantı Havuzu
Windows ODBC Sürücüsünde Bağlantı Dayanıklılığı
Zaman Uyumsuz Yürütme
İstemci Bağlantılarında (ODBC) Hizmet Asıl Adları (SPN)
Windows Üzerinde SQL Server için Microsoft ODBC Sürücüsünün Özellikleri
Aşağıdaki tabloda OLE DB sağlayıcısı sürümleri, indirme konumları ve özellik desteği hakkında önemli bilgiler özetlenmiştir. Office'i değil Windows'u temel alarak sürücünün doğru bit sürümünü (64 bit veya 32 bit) kullandığınızdan emin olun. 64 bit Windows üzerinde 32 bit Access çalıştırıyorsanız, 64 bit sürücüleri yükleyin. Bunlar Access için gereken 32 bit bileşenleri de içerir.
Daha fazla bilgi için bkz. SQL Server Native Client ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma.
OLE DB Sürücüsü 18.2.1
Bkz. SQL Server için OLE DB Sürücüsü Özelliği ve SQL Server için Microsoft OLE DB Sürücüsü sürüm notları
Kullanımdan kaldırıldı, kullanmayın
OLE DB Sürücüsü (SQLOLEDB)
Aşağıdaki tabloda SQL Server tarafından tanınan ODBC anahtar sözcükleri ve bunların amacı özetlenir. Access bunların yalnızca bir alt kümesini tanır.
Bir SQL Server örneğini çalıştıran sunucunun ağ adresi.
NULL karşılaştırmalarını, karakter veri doldurmayı, uyarıları ve NULL birleştirmeyi (Evet veya Hayır) işlemek için ANSI tanımlı davranışların kullanımını belirtir.
SQLDriverConnect çağrısı yapan uygulamanın adı.
Sunucuya bağlanırken uygulama iş yükü türünü bildirir (ReadOnly veya ReadWrite).
Bağlanabilir veritabanının birincil dosyasının adı.
İstemciyle sunucu arasında ANSI karakter dizelerinin gönderildiğini veya bunların Unicode'a çevrildiğini (Evet veya Hayır) belirtir.
Veritabanı adı. Description	Bağlantının amacı. Driver	SQLDrivers tarafından döndürüldüğü şekliyle sürücünün adı.
Mevcut ODBC kullanıcı veya sistem veri kaynağının adı. Encrypt	Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmeyeceğini belirtir (Evet veya Hayır).
Birincil sunucuyla bağlantı kurulamadığında kullanılacak yük devretme ortağı sunucusunun adı.
Yük devretme ortağının SPN'si.
Kullanımdan kaldırılmış anahtar sözcük.
Mevcut ODBC dosyası veri kaynağının adı. Language	SQL Server dili.
SQL Server 2005 (9.x) veya sonraki sürümleri için bağlantıda birden çok etkin sonuç kümesi (MARS) belirtir (Evet veya Hayır).
SQL Server kullanılabilirlik grubunun mu yoksa Yük Devretme Kümesi Ortağının mı kullanılabilirlik grubu dinleyicisine bağlanılacağını belirtir (Evet veya Hayır).
dbnmpntw adlandırılmış kanalı ve dbmssocn de TCP/IP'yi belirtir.
SQL Server oturum açma parolası.
Uzun süre çalışan sorguların günlüğe kaydedilip kaydedilmeyeceğini belirtir (Evet veya Hayır).
Uzun süre çalışan sorgularda verileri günlüğe kaydetmek için kullanılan dosyanın tam yolu ve dosya adı.
Uzun süre çalışan sorguların günlüğe kaydedilmesi için eşiği (milisaniye cinsinden) belirten rakam karakter dizesi.
SQL Server'ın SQL deyimlerinde tırnak işareti kullanımıyla ilgili olarak ISO kurallarını kullanıp kullanmadığını belirtir (Evet veya Hayır).
SQL Server Native Client ODBC sürücüsünün para birimi, tarih veya saat verilerini karakter verilerine dönüştürürken istemci ayarlarını kullanıp kullanmayacağını belirtir (Evet veya Hayır).
Bağlantı başarılı olursa, geçerli bağlantının özniteliklerinin kaydedildiği ODBC veri kaynağı dosyasının adı.
SQL Server örneğinin adı: Ağdaki sunucu, IP adresi veya Configuration Manager diğer adı.
SQL Server Native Client ODBC sürücüsünün performans verilerinin yakalamasını etkinleştirir.
SQL Server Native Client ODBC sürücüsünün performans istatistiklerini kaydetmek için kullanılan dosyanın tam yolu ve adı.
Oturum açma doğrulamasında Windows Kimlik Doğrulaması Modu'nun mu yoksa SQL Server kullanıcı adıyla parolasının mı kullanılacağını belirtir (Evet veya Hayır).
Encrypt ile kullanıldığında, otomatik olarak imzalanan bir sunucu sertifikası kullanılarak şifrelemeyi etkinleştirir.
SQL Server oturum açma adı.
İş istasyonu kimliği, uygulamanın bulunduğu bilgisayarın ağ adı.
Aşağıdaki tabloda SQL Server tarafından tanınan OLE DB anahtar sözcükleri ve bunların amacı özetlenir. Access bunların yalnızca bir alt kümesini tanır.
Uygulamayı tanımlayan dize.
OEM/ANSI karakter çevirisini yapılandırır (Doğru veya Yanlış).
Veri kaynağını başlatma işleminin tamamlanması için beklenecek süre (saniye cinsinden).
SQL Server dilinin adı.
Kuruluştaki bir SQL Server örneğinin adı.
Kullanılacak veri türü işleme modunu belirten sayı.
Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmeyeceğini belirtir (Evet veya Hayır).
Veritabanı yansıtması için kullanılan yük devretme sunucusunun adı.
Bağlanabilir veritabanının birincil dosyasının adı (tam yol adı dahil).
Windows Kimlik Doğrulaması (SSPI) için kullanılır.
SQL Server dili.
Kuruluştaki bir SQL Server örneğiyle bağlantı kurmak için kullanılan ağ kitaplığı.
Kuruluştaki bir SQL Server örneğinin ağ adresi.
Ağ paketi boyutu. Varsayılan olarak 4096’dır.
Kalıcı güvenliğin etkinleştirilip etkinleştirilmediğini belirtir (Doğru veya Yanlış).
Kalıcı gizliliğin etkinleştirilip etkinleştirilmediğini belirtir (Doğru veya Yanlış).
SQL Server Native Client Native Client için bu SQLNCLI11 olmalıdır.
Sunucu sertifikasının doğrulanmış olup olmadığını belirtir (Doğru veya Yanlış).
Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmeyeceğini belirtir (Doğru veya Yanlış).
OCDB veri kaynaklarını yönetme
Bağlantılı tabloları yönetme