Access'i SQL Server'a bağlama

Uygulandığı Öğe
Microsoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

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.

Veri erişiminin bileşenleri

Bu Makalede

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

ODBC sürücüsü veya OLE DB sağlayıcısı kullanma

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:

ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;

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.

ODBC sürücüleri

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şim 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.

Ipucu 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 odbc bağlantısı kesilirse, Access otomatik olarak buna yeniden bağlanmayı dener. Yeniden deneme başarılı olursa çalışmanıza devam edebilirsiniz. Yeniden deneme başarısız olursa, bağlantıya bağlı olmayan nesnelerle çalışmaya devam edebilirsiniz. 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.

Sayfanın Başı

Access’ten SQL Server’a program arabirimiyle bağlanma

Access’ten SQL Server veritabanına program arabirimiyle bağlanmanın başlıca iki yolu vardır.

DAO

Veri erişim nesnesi (DAO), veritabanına soyut bir arabirim sağlar. Microsoft Veri Erişim Nesneleri (DAO), Access'in merkezine ulaşmanıza ve nesneleri, tabloları, alanları, dizinleri, ilişkileri, sorguları, özellikleri ve dış veritabanlarını oluşturma, silme, değiştirme ve listelemeye SQL Server sağlayan yerel programlama nesnesi modelidir.

Daha fazla bilgi için bkz. Microsoft Veri Erişim Nesneleri başvurusu.

ADO

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).

Hangisini kullanmalısınız?

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.

Sayfanın Başı

ODBC sürücüsü sürümlerinin özeti

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'da SQL Server için ODBC Sürüm Notları (V17) ve Windows'da SQL Server için Microsoft ODBC Sürücüsü Özellikleri (V13, 11).

ODBC Sürücüleri Sürüm İndirme Yeni özellikler
ODBC Sürücüleri 17.0 - 17.3 SQL Server 2017 İndirme ODBC Sürücüsü 17.3
ODBC Sürücüsüyle Azure Active Directory Kullanma
Always Encrypted kullanırken 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ü ile Always Encrypted Kullanma
Veri Sınıflandırma
UTF-8 sunucu kodlama Harmanlaması ve Unicode Desteği
ODBC Sürücüsü 17.1
SQL Server için ODBC Sürücüsü ile Always Encrypted Kullanma
ODBC Sürücüsü 17.0
Always Encrypted
UseFMTONLY Geçici tablolar gerektiren özel durumlarda eski meta verileri kullanmak için. Bkz. Windows'da ODBC'nin SQL Server için Sürüm Notları
Yönetilen Örnek kullanılırken farklılıklar (ODBC sürüm 17)
ODBC Sürücüsü 13.1 SQL Server 2016 SP1, SQL Azure İndirme Always Encrypted
Azure Active Directory
AlwaysOn Kullanılabilirlik Grupları
SQL Server için ODBC Sürücüsünde Sürücü Kullanan Bağlantı Havuzu
ODBC Sürücüsü 13.0 SQL Server 2016 İndirme Uluslararası Etki Alanı Adı (IDN)
ODBC Sürücüsü 11.0 SQL Server 2005 - 2012 İndirme Sürücü Kullanan 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 Hizmet Asıl Adları (SPN'ler) (ODBC)
Windows'da SQL Server için Microsoft ODBC Sürücüsünün Özellikleri

Sayfanın Başı

OLE DB sağlayıcısı sürümlerinin özeti

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 Sağlayıcısı Sürüm İndirme Yeni özellikler
OLE DB Sürücüsü 18.2.1
(MSOLEDBSQL)
SQL Server 2017 İndirme SQL Server için bkz. SQL Server içinOLE DB Sürücüsü Özelliği ve Microsoft OLE DB Sürücüsü için Sürüm notları
SQL Server Native Client (SQLNCLI) SQL Server 2005 - 2012 Kullanımdan kaldırıldı, kullanmayın
OLE DB Sürücüsü (SQLOLEDB) Kullanımdan kaldırıldı, kullanmayın

Sayfanın Başı

ODBC anahtar sözcüğü özeti

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.

Anahtar Sözcük Açıklama
Addr Bir SQL Server örneğini çalıştıran sunucunun ağ adresi.
AnsiNPW 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.
APP SQLDriverConnect çağrısı yapan uygulamanın adı.
ApplicationIntent Sunucuya bağlanırken uygulama iş yükü türünü bildirir (ReadOnly veya ReadWrite).
AttachDBFileName Bağlanabilir veritabanının birincil dosyasının adı.
AutoTranslate İstemciyle sunucu arasında ANSI karakter dizelerinin gönderildiğini veya bunların Unicode'a çevrildiğini (Evet veya Hayır) belirtir.
Database Veritabanı adı. Açıklama Bağlantının amacı. SQLDrivers tarafından döndürülen sürücünün Sürücü Adı.
DSN Mevcut ODBC kullanıcı veya sistem veri kaynağının adı. Şifrele Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmemesi gerektiğini belirtir (Evet veya Hayır).
Failover_Partner Birincil sunucuyla bağlantı kurulamadığında kullanılacak yük devretme ortağı sunucusunun adı.
FailoverPartnerSPN Yük devretme ortağının SPN'si.
Fallback Kullanımdan kaldırılmış anahtar sözcük.
FileDSN Mevcut ODBC dosyası veri kaynağının adı. Dil SQL Server dili.
MARS_Connection 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).
MultiSubnetFailover 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).
Net dbnmpntw adlandırılmış kanalı ve dbmssocn de TCP/IP'yi belirtir.
PWD SQL Server oturum açma parolası.
QueryLog_On Uzun süre çalışan sorguların günlüğe kaydedilip kaydedilmeyeceğini belirtir (Evet veya Hayır).
QueryLogFile Uzun süre çalışan sorgularda verileri günlüğe kaydetmek için kullanılan dosyanın tam yolu ve dosya adı.
QueryLogTime Uzun süre çalışan sorguların günlüğe kaydedilmesi için eşiği (milisaniye cinsinden) belirten rakam karakter dizesi.
QuotedId 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).
Regional 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).
SaveFile Bağlantı başarılı olursa, geçerli bağlantının özniteliklerinin kaydedildiği ODBC veri kaynağı dosyasının adı.
Server SQL Server örneğinin adı: Ağdaki sunucu, IP adresi veya Yapılandırma Yöneticisi diğer adı.
ServerSPN Sunucunun SPN'si.
StatsLog_On SQL Server Native Client ODBC sürücüsünün performans verilerinin yakalamasını etkinleştirir.
StatsLogFile SQL Server Native Client ODBC sürücüsünün performans istatistiklerini kaydetmek için kullanılan dosyanın tam yolu ve adı.
Trusted_Connection 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).
TrustServerCertificate Encrypt ile kullanıldığında, otomatik olarak imzalanan bir sunucu sertifikası kullanılarak şifrelemeyi etkinleştirir.
UID SQL Server oturum açma adı.
UseProcForPrepare Kullanımdan kaldırılmış anahtar sözcük.
WSID İş istasyonu kimliği, uygulamanın bulunduğu bilgisayarın ağ adı.

Sayfanın Başı

OLE DB anahtar sözcüğü özeti

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.

Anahtar Sözcük Açıklama
Addr Bir SQL Server örneğini çalıştıran sunucunun ağ adresi.
APP Uygulamayı tanımlayan dize.
ApplicationIntent Sunucuya bağlanırken uygulama iş yükü türünü bildirir (ReadOnly veya ReadWrite).
AttachDBFileName Bağlanabilir veritabanının birincil dosyasının adı.
AutoTranslate OEM/ANSI karakter çevirisini yapılandırır (Doğru veya Yanlış).
Connect Timeout Veri kaynağını başlatma işleminin tamamlanması için beklenecek süre (saniye cinsinden).
Current Language SQL Server dilinin adı.
Data Source Kuruluştaki bir SQL Server örneğinin adı.
Database Veritabanı adı.
DataTypeCompatibility Kullanılacak veri türü işleme modunu belirten sayı.
Encrypt Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmeyeceğini belirtir (Evet veya Hayır).
FailoverPartner Veritabanı yansıtması için kullanılan yük devretme sunucusunun adı.
FailoverPartnerSPN Yük devretme ortağının SPN'si.
Initial Catalog Veritabanı adı.
Initial File Name Bağlanabilir veritabanının birincil dosyasının adı (tam yol adı dahil).
Integrated Security Windows Kimlik Doğrulaması (SSPI) için kullanılır.
Language SQL Server dili.
MarsConn 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).
Net Kuruluştaki bir SQL Server örneğiyle bağlantı kurmak için kullanılan ağ kitaplığı.
Network Address Kuruluştaki bir SQL Server örneğinin ağ adresi.
PacketSize Ağ paketi boyutu. Varsayılan olarak 4096’dır.
Persist Security Info Kalıcı güvenliğin etkinleştirilip etkinleştirilmediğini belirtir (Doğru veya Yanlış).
PersistSensitive Kalıcı gizliliğin etkinleştirilip etkinleştirilmediğini belirtir (Doğru veya Yanlış).
Provider SQL Server Native Client Native Client için bu SQLNCLI11 olmalıdır.
PWD SQL Server oturum açma parolası.
Server SQL Server örneğinin adı: Ağdaki sunucu, IP adresi veya Yapılandırma Yöneticisi diğer adı.
ServerSPN Sunucunun SPN'si.
Timeout Veri kaynağını başlatma işleminin tamamlanması için beklenecek süre (saniye cinsinden).
Trusted_Connection 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).
TrustServerCertificate Sunucu sertifikasının doğrulanmış olup olmadığını belirtir (Doğru veya Yanlış).
UID SQL Server oturum açma adı.
Use Encryption for Data Verilerin ağ üzerinden gönderilmeden önce şifrelenip şifrelenmeyeceğini belirtir (Doğru veya Yanlış).
UseProcForPrepare Kullanımdan kaldırılmış anahtar sözcük.
WSID İş istasyonu kimliği, uygulamanın bulunduğu bilgisayarın ağ adı.

Sayfanın Başı

OCDB veri kaynaklarını yönetmeBağlantılı tabloları yönetme