Łączenie programu Access z programem SQL Server

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Przypomnij sobie wspaniałe czasy młodości, gdy zupa z literkami była fajnym posiłkiem. Zadbaj o to, aby te szczęśliwe wspomnienia pozostały w pamięci, ponieważ spróbujemy kilku smaków bazodanowej wersji zupy z literkami. W poniższych sekcjach opisano podstawy uzyskiwania dostępu do bazy danych za pomocą parametrów połączenia i przy użyciu interfejsu programowania bazy danych w kodzie języka VBA programu Access.

Komponenty dostępu do danych

W tym artykule

Korzystanie ze sterownika ODBC lub dostawcy bazy danych OLE

Programistyczny interfejs do programu SQL Server z programu Access

Podsumowanie wersji sterowników ODBC

Podsumowanie wersji dostawców bazy danych OLE

Podsumowanie słów kluczowych ODBC

Podsumowanie słów kluczowych w bazie danych OLE

Korzystanie ze sterownika ODBC lub dostawcy bazy danych OLE

Parametry połączenia są wykorzystywane od dłuższego czasu. Sformatowane parametry połączenia można zdefiniować w interfejsie użytkownika programu Access lub w kodzie VBA. Parametry połączenia (czy to dane ODBC, czy też baza danych OLE) przekazują bezpośrednio do bazy danych takie informacje, jak lokalizacja serwera, nazwa bazy danych, typ zabezpieczeń i inne użyteczne opcje. Przykłady:

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

Początkowo istniał klient SQL Server Native Client (SNAC), który był autonomiczną biblioteką zawierającą technologie ODBC i bazy danych OLE i który jest nadal dostępny w wersjach programu SQL Server od 2005 do 2012. Wiele starszych aplikacji używa klienta SNAC i jest nadal obsługiwanych w celu zapewnienia zgodności z poprzednimi wersjami, ale nie zalecamy ich używania do tworzenia nowych aplikacji. Należy używać późniejszych, indywidualnych wersji sterowników ODBC do pobrania.

Sterowniki ODBC

Open Database Connectivity (ODBC) to protokół używany do połączenia bazy danych programu Access z zewnętrznym źródłem danych, takim jak program Microsoft SQL Server. Zazwyczaj do dodawania parametrów połączenia służą plikowe źródła danych (nazywane również plikami DSN), w którym to przypadku słowo kluczowe FILEDSN jest używane w parametrach połączenia, lub są przechowywane w rejestrze, w którym to przypadku jest używane słowo kluczowe DSN. Alternatywnie za pomocą języka VBA możesz także ustawiać te właściwości przy użyciu parametrów połączenia „DSN-less”.

W przeszłości sterowniki ODBC były dostarczane w trzech fazach:

  • Przed wersją 2005 sterowniki ODBC były dostarczane ze składnikami Windows Data Access Components (WDAC), które pierwotnie nosiły nazwę Microsoft Data Access Components (MDAC). Te składniki wciąż są dostarczane z systemem Windows w celu zapewnienia zgodności z poprzednimi wersjami. Aby uzyskać więcej informacji, zobacz Składniki programu Microsoft lub Windows Data Access.
  • Sterowniki ODBC dostarczane z klientem SNAC dla programu SQL Server od wersji 2005 do wersji 2012.
  • Po wprowadzeniu programu SQL Server 2012 sterowniki ODBC są dostarczane pojedynczo i zawierają obsługę nowych funkcji programu SQL Server.

W przypadku nowych opracowań należy unikać używania sterowników ODBC z dwóch pierwszych faz i używać sterowników ODBC z trzeciej fazy.

Dostawcy baz danych OLE

Baza danych łączenia i osadzania obiektów (OLE DB) jest nowszym protokołem służącym do nawiązywania połączenia bazy danych programu Access z zewnętrznym źródłem danych, takim jak Microsoft SQL Server. Baza danych OLE nie wymaga źródeł DSN oraz zapewnia także pełny dostęp do źródeł danych ODBC i sterowników ODBC.

Wskazówka Zazwyczaj do dodawania parametry połączenia bazy danych OLE jest używane okno dialogowe Właściwości łącza danych. Chociaż nie ma sposobu na otwarcie okna dialogowego Właściwości łącza danych w programie Access, w Eksploratorze Windows można utworzyć pusty plik txt, zmienić typ pliku na udl, a następnie kliknąć dwukrotnie ten plik. Po utworzeniu parametrów połączenia zmień typ pliku z powrotem na txt.

W przeszłości dostawcy baz danych OLE dostarczali je w trzech fazach:

  • Przed wersją 2005 dostawcy baz danych OLE byli dostarczani ze składnikami Windows Data Access Components (WDAC), które pierwotnie nosiły nazwę Microsoft Data Access Components (MDAC).
  • Dostawcy baz danych OLE dostarczani dla programu SQL Server od wersji 2005 do wersji 2017. Zostało to zastąpione w 2011 r.
  • W 2017 dostawca bazy danych OLE programu SQL Server został przywrócony z przestarzałej wersji.

Obecnie zalecana wersja do tworzenia nowych rozwiązań to sterownik bazy danych OLE 18 dla programu SQL Server.

Jak zoptymalizować wydajność za pomocą parametrów połączenia ODBC

W celu zoptymalizowania wydajności, zminimalizowania ruchu w sieci i ograniczenia dostępu wielu użytkowników do bazy danych programu SQL Server należy użyć jak najmniejszej liczby parametrów połączeń, udostępniając parametry połączenia w wielu zestawach rekordów. Chociaż funkcja ACE po prostu przekazuje parametry połączenia na serwer, rozumie i używa ona następujących słów kluczowych: DSN, DATABASE, UID, PWD i DRIVER, pomagając zminimalizować komunikację klient/serwer.

Uwaga Jeśli połączenie ODBC z zewnętrznym źródłem danych zostanie utracone, program Access automatycznie spróbuje ponownie nawiązać z nim połączenie. Jeśli ponowna próba zakończy się powodzeniem, możesz dalej pracować. Jeśli ponowna próba zakończy się niepowodzeniem, nadal możesz pracować z obiektami, które nie korzystają z połączenia. Aby ponownie nawiązać połączenie, zamknij i ponownie otwórz program Access.

Zalecenia dotyczące korzystania zarówno z ODBC, jak i bazy danych OLE

Unikaj mieszania parametrów połączenia i technologii dostępu do baz danych. W przypadku obiektów DAO należy używać parametrów połączenia ODBC. W przypadku obiektów ADO należy używać parametrów połączenia bazy danych OLE. Jeśli aplikacja zawiera kod języka VBA używający zarówno obiektów DAO, jak i ADO, użyj sterownika ODBC dla obiektów DAO i dostawcy bazy danych OLE dla obiektów ADO. Staraj się uzyskać najnowsze funkcje i wsparcie zarówno dla standardu ODBC, jak i bazy danych OLE odpowiednio.

W standardzie ODBC jest używany sterownik warunków, a baza danych OLE używa dostawcy warunków. Warunki te opisują ten sam typ składnika oprogramowania, ale nie są zamienne w składni parametrów połączenia. Użyj właściwej wartości zgodnie z dokumentacją.

Początek strony

Programistyczny interfejs do programu SQL Server z programu Access

Istnieją dwa główne sposoby programistycznego nawiązania połączenia z bazą danych programu SQL Server z programu Access.

DAO

Obiekt DAO (obiekt dostępu do danych) zapewnia interfejs abstrakcyjny dla bazy danych. Obiekt DAO (Microsoft Data Access Objects) to natywny model obiektów programistycznych, który umożliwia w centrum programu Access i SQL Server tworzenie, usuwanie, modyfikowanie i tworzenie list obiektów, tabel, pól, indeksów, relacji, zapytań, właściwości i zewnętrznych baz danych.

Aby uzyskać więcej informacji, zobacz Dokumentacja obiektów programu Microsoft Data Access.

ADO

Obiekty ActiveX Data Objects (ADO) zapewniają model programowania na wysokim poziomie, który jest dostępny w programie Access poprzez odwołanie do biblioteki innej firmy. Obiekt ADO jest bardzo prosty w nauce i umożliwia aplikacjom klienckim dostęp do danych z różnych źródeł, takich jak program Access i SQL Server, i manipulowanie nimi. Jego podstawowymi zaletami jest łatwa obsługa, duża szybkość, niewielkie obciążenia pamięci i niewiele miejsca zajmowanegp na dysku. Obiekt ADO obsługuje także najważniejsze funkcje budowy aplikacji internetowych.

Aby uzyskać więcej informacji, zobacz Informacje o obiektach danych Microsoft ActiveX i obiekty Microsoft ActiveX Data Objects (ADO).

Których należy użyć?

W rozwiązaniu programu Access wykorzystującym kod VBA możesz używać obiektów DAO, ADO lub obu jako technologii interfejsu bazy danych. Obiekty DAO będą nadal domyślne w programie Access. Na przykład wszystkie formularze i raporty oraz zapytania programu Access używają obiektów DAO. Jeśli jednak przeprowadzasz migrację do programu SQL Server, rozważ skorzystanie z obiektów ADO, aby zwiększyć efektywność swojego rozwiązania. Poniżej przedstawiono ogólne wskazówki ułatwiające podejmowanie decyzji, kiedy używać obiektów DAO, a kiedy ADO.

Używaj obiektów DAO, jeśli chcesz:

  • Tworzyć powiązane formularze do odczytu/zapisu bez użycia języka VBA.
  • Tworzyć zapytania do tabel lokalnych.
  • Pobierać dane do tabel tymczasowych.
  • Używać zapytań przekazujących jako źródeł danych w raportach lub formularzach w trybie tylko do odczytu.
  • Definiować obiekt TableDef lub Querydef w języku VBA i używać go.

Używaj obiektów ADO, jeśli chcesz:

  • Wykorzystać dodatkowe sposoby optymalizowania, takie jak wykonywanie operacji asynchronicznych.
  • Wykonywać zapytania przekazujące DDL i DML.
  • Uzyskać dostęp do danych programu SQL Server bezpośrednio używając zestawów rekordów w języku VBA.
  • Pisać prostszy kod dla niektórych zadań, takich jak strumieniowanie obiektów BLOB.
  • Bezpośrednio wywoływać procedurę składowaną z parametrami przy użyciu obiektu polecenia w języku VBA.

Początek strony

Podsumowanie wersji sterowników ODBC

Poniższa tabela zawiera podsumowanie ważnych informacji dotyczących wersji sterowników ODBC, lokalizacji pobierania i pomocy technicznej dotyczącej funkcji. Upewnij się, że jest używana prawidłowa wersja bitowa (64-bitowa lub 32-bitowa) sterownika odpowiadająca systemowi Windows, a nie pakietowi Office. Jeśli korzystasz z 32-bitowej wersji programu Access w 64-bitowej wersji systemu Windows, zainstaluj sterowniki 64-bitowe, które zawierają komponenty 32-bitowe niezbędne dla programu Access.

Aby uzyskać więcej informacji, zobacz Używanie słów kluczowych parametrów połączenia z SQL Server Native Client, Informacje o wersji dotyczące SQL Server ODBC w systemie Windows (wersja 17) oraz Funkcje sterownika ODBC firmy Microsoft dla SQL Server w systemie Windows (wersja 13, 11)..

Sterowniki ODBC Wersja Pobieranie Nowe funkcje
Sterowniki ODBC od 17.0 do 17.3 SQL Server 2017 Pobieranie Sterownik ODBC 17.3
Używanie usługi Azure Active Directory ze sterownikiem ODBC
Ograniczenia sterownika ODBC podczas korzystania z Always Encrypted
Korzystanie z transakcji XA
Sterownik ODBC 17.2
Używanie Always Encrypted ze sterownikiem ODBC dla SQL Server
Klasyfikacja danych
UtF-8 — sortowanie kodowania serwera i pomoc techniczna unicode
Sterownik ODBC 17.1
Używanie Always Encrypted ze sterownikiem ODBC dla SQL Server
Sterownik ODBC 17.0
Always Encrypted
UseFMTONLY Aby używać starszych metadanych w specjalnych przypadkach wymagających tabel tymczasowych. Zobacz Informacje o wersji dotyczące SQL Server ODBC w systemie Windows
Różnice podczas korzystania z wystąpienia zarządzanego (ODBC w wersji 17)
Sterownik ODBC 13.1 SQL Server 2016 z dodatkiem SP1, SQL Azure Pobieranie Always Encrypted
Azure Active Directory
Grupy dostępności AlwaysOn
Pula połączeń świadomych sterowników w sterowniku ODBC dla SQL Server
Sterownik ODBC 13.0 SQL Server 2016 Pobieranie Międzynarodowa nazwa domeny (IDN)
Sterownik ODBC 11.0 SQL Server 2005 do 2012 Pobieranie Pula połączeń opartych na sterownikach
Odporność połączenia w sterowniku ODBC systemu Windows
Asynchroniczne wykonywanie
Nazwy główne usług (SPN) w połączeniach klientów (ODBC)
Funkcje sterownika ODBC firmy Microsoft dla SQL Server w systemie Windows

Początek strony

Podsumowanie wersji dostawców bazy danych OLE

Poniższa tabela zawiera podsumowanie ważnych informacji dotyczących wersji dostawców bazy danych OLE, lokalizacji pobierania i pomocy technicznej dotyczącej funkcji. Upewnij się, że jest używana prawidłowa wersja bitowa (64-bitowa lub 32-bitowa) sterownika odpowiadająca systemowi Windows, a nie pakietowi Office. Jeśli korzystasz z 32-bitowej wersji programu Access w 64-bitowej wersji systemu Windows, zainstaluj sterowniki 64-bitowe, które zawierają komponenty 32-bitowe niezbędne dla programu Access.

Aby uzyskać więcej informacji, zobacz Używanie słów kluczowych parametrów połączenia z SQL Server Native Client.

Dostawca bazy danych OLE Wersja Pobieranie Nowe funkcje
Sterownik bazy danych OLE 18.2.1
(MSOLEDBSQL)
SQL Server 2017 Pobieranie Aby uzyskać SQL Server, zobacz Sterownik bazy danych OLE dla funkcji SQL Server i informacje o wersji dla sterownika bazy danych OLE firmy Microsoft, aby uzyskać SQL Server
SQL Server Native Client (SQLNCLI) SQL Server 2005 do 2012 Przestarzałe — nie używaj
Sterownik OLE DB (SQLOLEDB) Przestarzałe — nie używaj

Początek strony

Podsumowanie słów kluczowych ODBC

Poniższa tabela zawiera podsumowanie słów kluczowych ODBC rozpoznawanych przez program SQL Server oraz ich przeznaczenie. Program Access rozpoznaje jedynie ich podzbiór.

Słowo kluczowe Opis
Addr Adres sieciowy serwera, na którym działa wystąpienie programu SQL Server.
AnsiNPW Określa sposób użycia zachowań zdefiniowanych przez standard ANSI służących do obsługi porównań wartości NULL, uzupełniania danych znaku, ostrzeżeń i łączenia znaków NULL (tak lub nie).
APP Nazwa aplikacji wywołującej SQLDriverConnect.
ApplicationIntent Deklaruje typ obciążenia aplikacji podczas nawiązywania połączenia z serwerem (ReadOnly lub ReadWrite).
AttachDBFileName Nazwa pliku podstawowego bazy danych umożliwiającej dołączenie.
AutoTranslate Określa, czy ciągi znaków ANSI są przesyłane między klientem lub serwerem, czy też są tłumaczone na standard Unicode (tak lub nie).
Database Nazwa bazy danych. Opis Cel połączenia. Nazwa sterownika zwrócona przez usługi SQLDrivers.
DSN Nazwa istniejącego użytkownika ODBC lub systemowego źródła danych. Szyfruj Określa, czy dane mają być szyfrowane przed wysłaniem ich przez sieć (Tak lub Nie).
Failover_Partner Nazwa serwera partnerskiego trybu failover, który ma być używany, jeśli nie można nawiązać połączenia z serwerem podstawowym.
FailoverPartnerSPN Nazwa SPN partnera trybu failover.
Fallback Przestarzałe słowo kluczowe.
FileDSN Nazwa istniejącego źródła danych pliku ODBC. Język Język SQL Server.
MARS_Connection Określa wiele aktywnych zestawów wyników (MARS) dla połączenia z programem SQL Server 2005 (9.x) lub nowszym (tak lub nie).
MultiSubnetFailover Określa, czy ma zostać nawiązane połączenie z odbiornikiem grupy dostępności programu SQL Server, czy też z wystąpieniem klastra trybu failover (tak lub nie).
Net dbnmpntw oznacza potoki nazwane, a dbmssocn oznacza protokół TCP/IP.
PWD Hasło logowania do programu SQL Server.
QueryLog_On Określa rejestrowanie długo działających zapytań (tak lub nie).
QueryLogFile Pełna ścieżka i nazwa pliku, który ma być używany do rejestrowania danych długo działających zapytań.
QueryLogTime Ciąg znaków cyfrowych określający próg (w milisekundach) rejestrowania długo działających zapytań.
QuotedId Określa, czy w programie SQL Server są używane reguły ISO dotyczące korzystania ze znaków cudzysłowu w instrukcjach SQL (tak lub nie).
Regional Określa, czy sterownik ODBC klienta SQL Server Native Client używa ustawień klienta podczas konwersji danych typu waluta, data lub godzina na dane znakowe (tak lub nie).
SaveFile Nazwa pliku źródła danych ODBC, w którym są zapisane atrybuty bieżącego połączenia, jeśli połączenie zakończyło się pomyślnie.
Server Nazwa wystąpienia programu SQL Server: Serwer w sieci, adres IP lub alias programu Configuration Manager.
ServerSPN Nazwa SPN dla serwera.
StatsLog_On Umożliwia przechwytywanie danych wydajności sterownika ODBC klienta SQL Server Native Client.
StatsLogFile Pełna ścieżka i nazwa pliku służącego do rejestrowania statystyk wydajności sterownika ODBC klienta SQL Server Native Client.
Trusted_Connection Określa, czy w przypadku walidacji logowania ma być używany tryb uwierzytelniania systemu Windows, czy też nazwa użytkownika lub hasło serwera SQL (tak lub nie).
TrustServerCertificate W przypadku korzystania z funkcji szyfrowania włącza szyfrowanie przy użyciu certyfikatu serwera z podpisem własnym.
UID Nazwa logowania do programu SQL Server.
UseProcForPrepare Przestarzałe słowo kluczowe.
WSID Identyfikator stacji roboczej — nazwa sieciowa komputera, na którym znajduje się aplikacja.

Początek strony

Podsumowanie słów kluczowych w bazie danych OLE

Poniższa tabela zawiera podsumowanie słów kluczowych bazy danych OLE rozpoznawanych przez program SQL Server i ich przeznaczenie. Program Access rozpoznaje jedynie ich podzbiór.

Słowo kluczowe Opis
Addr Adres sieciowy serwera, na którym działa wystąpienie programu SQL Server.
APP Ciąg identyfikujący aplikację.
ApplicationIntent Deklaruje typ obciążenia aplikacji podczas nawiązywania połączenia z serwerem (ReadOnly lub ReadWrite).
AttachDBFileName Nazwa pliku podstawowego bazy danych umożliwiającej dołączenie.
AutoTranslate Konfiguruje tłumaczenie znaków standardu OEM/ANSI (prawda lub fałsz).
Connect Timeout Czas oczekiwania (w sekundach) na ukończenie inicjowania źródła danych.
Current Language Nazwa języka programu SQL Server.
Data Source Nazwa wystąpienia programu SQL Server w organizacji.
Database Nazwa bazy danych.
DataTypeCompatibility Liczba oznaczająca tryb obsługi typu danych, który będzie używany.
Encrypt Określa, czy dane mają być szyfrowane przed wysłaniem przez sieć (tak lub nie).
FailoverPartner Nazwa serwera trybu failover służącego do klonowania bazy danych.
FailoverPartnerSPN Nazwa SPN partnera trybu failover.
Initial Catalog Nazwa bazy danych.
Initial File Name Nazwa pliku podstawowego (zawierająca pełną nazwę ścieżki) dołączonej bazy danych.
Integrated Security Używane na potrzeby uwierzytelniania systemu Windows (SSPI).
Language Język programu SQL Server.
MarsConn Określa wiele aktywnych zestawów wyników (MARS) dla połączenia z programem SQL Server 2005 (9.x) lub nowszym (tak lub nie).
Net Biblioteka sieciowa służąca do nawiązania połączenia z wystąpieniem programu SQL Server w organizacji.
Network Address Adres sieciowy wystąpienia programu SQL Server w organizacji.
PacketSize Rozmiar pakietu sieciowego. Wartość domyślna to 4096.
Persist Security Info Określa, czy jest włączone zabezpieczenie trwałe (prawda lub fałsz).
PersistSensitive Określa, czy jest włączona opcja trwałej czułości (prawda lub fałsz).
Provider W przypadku klienta SQL Server Native Client powinno to być SQLNCLI11.
PWD Hasło logowania do programu SQL Server.
Server Nazwa wystąpienia programu SQL Server: Serwer w sieci, adres IP lub alias programu Configuration Manager.
ServerSPN Nazwa SPN dla serwera.
Timeout Czas oczekiwania (w sekundach) na ukończenie inicjowania źródła danych.
Trusted_Connection Określa, czy w przypadku walidacji logowania ma być używany tryb uwierzytelniania systemu Windows, czy też nazwa użytkownika lub hasło serwera SQL (tak lub nie).
TrustServerCertificate Określa, czy certyfikat serwera przeszedł walidację (prawda lub fałsz).
UID Nazwa logowania do programu SQL Server.
Use Encryption for Data Określa, czy dane mają być szyfrowane przed wysłaniem przez sieć (prawda lub fałsz).
UseProcForPrepare Przestarzałe słowo kluczowe.
WSID Identyfikator stacji roboczej — nazwa sieciowa komputera, na którym znajduje się aplikacja.

Początek strony

Administruj źródłami danych ODBCZarządzanie tabelami połączonymi