Jak pomocí adox vytvořit předávací dotaz SQL v Accessu

Střední: Vyžaduje základní dovednosti v makrech, kódování a interoperabilitě.

Tento článek se týká pouze databáze Microsoft Access (.accdb a .mdb).

Souhrn

V tomto článku se dozvíte, jak vytvořit předávací dotaz SQL v jazyce Microsoft Visual Basic for Applications (VBA) s objekty Microsoft ActiveX Data Objects (ADO).

Další informace

V jazyce Visual Basic pro aplikace můžete napsat funkci, která vytvoří předávací dotaz SQL. Předávací dotaz SQL se skládá z příkazu SQL a připojovací řetězec. Když dotaz spustíte, odešle příkazy ke zpracování přímo databázovému serveru. Tím se odstraní režie databázového stroje Microsoft Jet.

S modelem DAO (Data Access Object) můžete použít předávací dotazy SQL ke zlepšení výkonu při přístupu k externím datům. S ADO můžete použít zprostředkovatele Microsoft OLE DB pro SQL Server pro přímý přístup k SQL Server bez režijních nákladů na Microsoft Jet nebo ODBC. Pro přístup k datům v libovolném zdroji dat ODBC můžete také použít zprostředkovatele Microsoft OLE DB pro rozhraní ODBC.

I když už nemusíte v databázi Microsoft Jet vytvářet předávací dotazy SQL, abyste zlepšili výkon, můžete to přesto provést pomocí adox a poskytovatele jet. Následující kód ukazuje, jak vytvořit předávací dotaz SQL.

POZNÁMKA: Ukázkový kód v tomto článku používá rozšíření ADO i ActiveX Data Objects pro data Definition Language and Security (ADOX). Aby tento kód běžel správně, musíte kliknout na Odkazy v nabídce Nástroje v Editor jazyka Visual Basic a ujistěte se, že jsou vybrány následující dva odkazy:

  • Knihovna Microsoft ActiveX Data Objects 2.1
  • Microsoft ADO Ext. 2.6 pro DDL a zabezpečení

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele. Pokud chcete vytvořit předávací dotaz SQL v kódu, postupujte takto:

  1. Otevřete ukázkovou databázi Northwind.
  2. Vytvořte nový modul a zadejte nebo vložte následující kód:
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. Chcete-li otestovat tuto funkci, zadejte následující řádek v okně Immediate a stiskněte klávesu ENTER:

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