Jak utworzyć zapytanie pass-through SQL w programie Access za pomocą usługi ADOX

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Umiarkowany. Wymaga podstawowych umiejętności makr, kodowania i współdziałania.

Ten artykuł dotyczy tylko bazy danych programu Microsoft Access (accdb i mdb).

Podsumowanie

W tym artykule pokazano, jak utworzyć zapytanie pass-through języka SQL w języku Microsoft Visual Basic for Applications (VBA) z obiektami ADO (Microsoft ActiveX Data Objects).

Więcej informacji

W języku Visual Basic for applications można napisać funkcję tworzącą zapytanie przekazać SQL. Zapytanie przekazać SQL składa się z instrukcji SQL i parametrów połączenia. Po uruchomieniu zapytanie wysyła polecenia bezpośrednio do serwera bazy danych w celu przetworzenia. Spowoduje to usunięcie obciążenia aparatu bazy danych Microsoft Jet.

W modelu data Access Object (DAO) można za pomocą zapytań przekazać SQL zwiększyć wydajność, gdy uzyskano dostęp do danych zewnętrznych. W przypadku obiektu ADO możesz użyć dostawcy Microsoft OLE DB Provider for SQL Server, aby bezpośrednio uzyskać dostęp do programu SQL Server bez obciążenia programu Microsoft Jet lub ODBC. Aby uzyskać dostęp do danych z dowolnego źródła danych ODBC, możesz również użyć dostawcy Microsoft OLE DB Provider for ODBC.

Chociaż w bazie danych programu Microsoft Jet nie trzeba już tworzyć zapytań przekazać SQL, aby zwiększyć wydajność, można to zrobić przy użyciu usług ADOX i dostawcy jet. Poniższy kod przedstawia sposób tworzenia zapytania przekażego SQL.

UWAGA: W przykładowym kodzie w tym artykule są używane rozszerzenia ADO i ActiveX Data Objects na podstawie języka i zabezpieczeń definicji danych (ADOX). Aby ten kod działał poprawnie, należy kliknąć polecenie Odwołania w menu Narzędzia w Edytorze Visual Basic i upewnić się, że zaznaczono dwa następujące odwołania:

  • Biblioteka obiektów Microsoft ActiveX Data Objects 2.1
  • Microsoft ADO Ext. 2.6 dla języka DDL i zabezpieczeń

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika. Aby utworzyć w kodzie zapytanie przekazać SQL, wykonaj następujące czynności:

  1. Otwórz przykładową bazę danych Northwind.
  2. Utwórz nowy moduł, a następnie wpisz lub wklej następujący kod:
Function CreateSPT(SPTQueryName As String, strSQL As String)

Dim cat As ADOX.Catalog
  Dim cmd As ADODB.Command

Set cat = New ADOX.Catalog
  Set cmd = New ADODB.Command

cat.ActiveConnection = CurrentProject.Connection

Set cmd.ActiveConnection = cat.ActiveConnection

cmd.CommandText = strSQL
  cmd.Properties("Jet OLEDB:ODBC Pass-Through Statement") = True

'Modify the following connection string to reference an existing DSN for 
 'the sample SQL Server PUBS database.

cmd.Properties _
     ("Jet OLEDB:Pass Through Query Connect String") = _
       "ODBC;DSN=myDSN;database=pubs;UID=sa;PWD=;"
  cat.Procedures.Append SPTQueryName, cmd

Set cat = Nothing
  Set cmd = Nothing

End Function

  1. Aby przetestować tę funkcję, wpisz następujący wiersz w oknie bezpośrednim i naciśnij klawisz ENTER:

    ? CreateSPT("MojeKwerendy", "Wybierz * od autorów")