SQL-läpi kulkevan kyselyn luominen AdOX:n avulla Accessissa

Huomautus

Office 365 ProPlus nimetään uudelleen Microsoft 365 Apps for enterprise -sovellukseksi. Lisätietoja tästä muutoksesta on tässä blogikirjoituksessa.

Keskitaso: Edellyttää makrojen, koodauksen ja yhteensopivuuden perustaitoja.

Tämä artikkeli koskee vain Microsoft Access -tietokantaa (.accdb ja .mdb).

Yhteenveto

Tässä artikkelissa kerrotaan, miten voit luoda SQL-läpi kulkevan kyselyn Microsoft Visual Basic for Applications (VBA) -sovelluksissa Microsoft ActiveX Data Objects (ADO) -sovelluksella.

Lisätietoja

Voit kirjoittaa Visual Basic for Applicationsissa funktion, joka luo SQL-läpi kulkevan kyselyn. SQL-läpi kulkeva kysely koostuu SQL-lausekkeesta ja yhteysmerkkijonosta. Kun suoritat kyselyn, se lähettää komentoja suoraan tietokantapalvelimeen käsittelyä varten. Tämä poistaa Microsoft Jet -tietokantamoduulin kuormitteet.

Data Access Object (DAO) -mallin avulla voit parantaa suorituskykyä SQL:n läpi kulkevan kyselyn avulla, kun käytät ulkoisia tietoja. ADO:n avulla voit käyttää SQL Serverin Microsoft OLE DB -palvelua suoraan SQL Serverin käyttöön ilman Microsoft Jetin tai ODBC:n kuormit yhteensä. Voit käyttää minkä tahansa ODBC-tietolähteen tietoja myös OdBC:n Microsoft OLE DB -palvelun avulla.

Vaikka Microsoft Jet -tietokannassa ei enää tarvitse luoda SQL-läpikäynnistä kyselyjä suorituskyvyn parantamiseksi, voit silti tehdä sen ADOX:n ja Jet Providerin avulla. Seuraava koodi näyttää, miten voit luoda SQL:n läpi kulkevan kyselyn.

HUOMAUTUS: Tämän artikkelin mallikoodi käyttää sekä ADO- että ActiveX Data Objects Extensions -laajennuksia DATA Definition Language and Security (ADOX) -kielessä. Jotta tämä koodi toimisi oikein, valitse Visual Basic Editorin Työkalut-valikosta Viittaukset ja varmista, että seuraavat kaksi viittausta on valittu:

  • Microsoft ActiveX Data Objects 2.1 -kirjasto
  • Microsoft ADO Ext. 2.6 DDL:lle ja suojalle

Microsoft esittää ohjelmointiesimerkkejä vain asian havainnollistamiseksi, ilman suoraa tai epäsuoraa vastuuta niiden toimivuudesta. Tämä sisältää muunmuassa epäsuorat vastuut soveltuvuudesta kaupankäyntiin tai soveltuvuuteen yksilöityyn käyttöön. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen, sekä proseduurien luonti- ja virheenkorjaustyökaluihin. Microsoftin tukihenkilöt voivat auttaa selvittämään tietyn proseduurin toiminnallisuutta, mutta he eivät muokkaa näitä esimerkkejä parantamaan yksittäisen tarpeen toiminnallisuutta eivätkä luo siihen proseduureja. Voit luoda SQL-läpi kulkevan kyselyn koodissa seuraavasti:

  1. Avaa Northwind-mallitietokanta.
  2. Luo uusi moduuli ja kirjoita tai liitä seuraava koodi:
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. Jos haluat testata tätä funktiota, kirjoita seuraava rivi Välittömät päivämäärät -ikkunaan ja paina sitten ENTER-näppäintä:

    ? CreateSPT("MySptQuery", "Valitse * tekijöiltä")