Łączenie programu Access z programem SQL Server
Applies ToAccess 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 Komponenty Microsoft lub Windows Access Components.

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

Porada    Zazwyczaj za pomocą okna dialogowego Właściwości łącza danych możesz dodać parametry połączenia bazy danych OLE. 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 się nie powiedzie, możesz nadal pracować z obiektami, które nie zależą od tego 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. Obiekty Microsoft Data Access Objects (DAO) to macierzysty model obiektów programistycznych, który umożliwia korzystanie z podstawowych funkcji programów Access i SQL Server do tworzenia, usuwania, modyfikowania i wyświetlania obiektów, tabel, pól, indeksów, relacji, zapytań, właściwości i zewnętrznych baz danych.

Aby uzyskać więcej informacji, zobacz Informacje o obiektach Microsoft Data Access Objects.

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 Microsoft ActiveX Data Objects i Obiekty ADO (Microsoft ActiveX Data Objects).

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 przy użyciu klienta SQL Server Native Client, Informacje o wersji dla protokołu ODBC z programem SQL Server w systemie Windows (V17) oraz Funkcje sterownika Microsoft ODBC Driver for SQL Server w systemie Windows (V13, 11).

Sterowniki ODBC

Wersja

Pobieranie

Nowe funkcje

Sterowniki ODBC od 17.0 do 17.3

SQL Server 2017

Pobieranie

Sterownik ODBC 17.3

Korzystanie z usługi Azure Active Directory ze sterownikiem ODBC

Ograniczenia sterownika ODBC podczas korzystania z funkcji Always Encrypted

Korzystanie z transakcji XA

Sterownik ODBC 17.2

Używanie funkcji Always Encrypted ze sterownikiem ODBC dla programu SQL Server

Klasyfikacja danych

Sortowanie kodowania UTF-8 na serwerze i obsługa standardu Unicode

Sterownik ODBC 17.1

Używanie funkcji Always Encrypted ze sterownikiem ODBC dla programu SQL Server

Sterownik ODBC 17.0

Always Encrypted

UseFMTONLY    Do używania starszych metadanych w specjalnych przypadkach wymagających tabel tymczasowych. Zobacz Informacje o wersji dotyczące protokołu ODBC w programie SQL Server w systemie Windows

Różnice podczas używania wystąpień zarządzanych (ODBC w wersji 17)

Sterownik ODBC 13.1

SQL Server 2016 z dodatkiem SP1, SQL Azure

Pobieranie

Always Encrypted

Azure Active Directory

Zawsze włączone grupy dostępności

Pula połączeń rozpoznawania sterowników w sterowniku ODBC dla programu SQL Server

Sterownik ODBC 13.0

SQL Server 2016

Pobieranie

Międzynarodowa nazwa domeny (IDN)

Sterownik ODBC 11.0

SQL Server 2005 do 2012

Pobierz

Tworzenie pul połączeń opartych na sterownikach

Odporność połączenia w sterowniku ODBC systemu Windows

Asynchroniczne wykonywanie

Nazwy główne usług (nazwy SPN) w połączeniach klienta (ODBC)

Funkcje sterownika Microsoft ODBC Driver for 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 dla klienta SQL Server Native Client.

Dostawca bazy danych OLE

Wersja

Pobieranie

Nowe funkcje

Sterownik bazy danych OLE 18.2.1

(MSOLEDBSQL)

SQL Server 2017

Pobieranie

Zobacz Sterownik bazy danych OLE dla funkcji programu SQL Server i Informacje o wersji dla sterownika bazy danych OLE firmy Microsoft dla programu 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. Description Cel połączenia. Driver Nazwa sterownika zwracana przez SQLDrivers.

DSN

Nazwa istniejącego użytkownika ODBC lub systemowego źródła danych. Encrypt Określa, czy dane mają być szyfrowane przed wysłaniem 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. Language Język programu 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 ODBC

Zarządzanie tabelami połączonymi

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.