Jak utworzyć zapytanie przekazujące SQL w programie Access przy użyciu usługi ADOX

Umiarkowane: wymaga podstawowych umiejętności w zakresie makra, kodowania i współdziałania.

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

Podsumowanie

W tym artykule pokazano, jak utworzyć zapytanie przekazujące SQL w usłudze Microsoft Visual Basic for Applications (VBA) przy użyciu obiektów danych Microsoft ActiveX (ADO).

Więcej informacji

Możesz napisać funkcję w języku Visual Basic dla aplikacji, która tworzy zapytanie przekazujące SQL. Zapytanie przekazujące SQL składa się z instrukcji SQL i parametry połączenia. Po uruchomieniu zapytania wysyła polecenia bezpośrednio do serwera bazy danych w celu przetworzenia. Eliminuje to obciążenie aparatu bazy danych Microsoft Jet.

Za pomocą modelu dao (Data Access Object) można użyć zapytań przekazujących SQL w celu zwiększenia wydajności podczas uzyskiwania dostępu do danych zewnętrznych. Dzięki usłudze ADO możesz użyć dostawcy OLE DB firmy Microsoft do SQL Server, aby uzyskać bezpośredni dostęp do SQL Server bez narzutu firmy Microsoft Jet lub ODBC. Aby uzyskać dostęp do danych w dowolnym źródle danych ODBC, możesz również użyć dostawcy usługi Microsoft OLE DB for ODBC.

Mimo że nie trzeba już tworzyć zapytań przekazywanych SQL w bazie danych Microsoft Jet w celu zwiększenia wydajności, nadal możesz to zrobić przy użyciu usługi ADOX i dostawcy jet. Poniższy kod pokazuje, jak utworzyć zapytanie przekazujące SQL.

UWAGA: Przykładowy kod w tym artykule używa rozszerzeń obiektów danych ADO i ActiveX dla języka i zabezpieczeń definicji danych (ADOX). Aby ten kod działał prawidłowo, należy kliknąć pozycję Odwołania w menu Narzędzia w Redaktor Visual Basic i upewnić się, że wybrano następujące dwa odwołania:

  • Biblioteka obiektów danych Microsoft ActiveX 2.1
  • Microsoft ADO Ext. 2.6 for DDL and Security

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ć zapytanie przekazujące SQL w kodzie, wykonaj następujące kroki:

  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 Natychmiastowe, a następnie naciśnij klawisz ENTER:

    ? CreateSPT("MySptQuery", "Select * from Authors")