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