Ta vadnica vsebuje primere uporabe SQL z dostopom VBA. Kot boste videli spodaj, lahko za izvajanje poizvedb SQL v Accessu z VBA uporabite bodisi DoCmd.RunSQL ali CurrentDb.Execute metode.
SQL Izberite
Ta primer bo uporabil stavek SQL Select za odpiranje nabora zapisov:
Zatemni rs kot nabor zapisov rs = CurrentDb.OpenRecordset ("izberite * iz tabele1, kjer je število = 0", dbOpenDynaset)
Tabela posodobitev SQL
Ta vrstica kode VBA uporablja metodo DoCmd.RunSQL za posodobitev tabele:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 where num = 999")
Lahko pa uporabite metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "UPDATE table1 SET num = 0 where num = 999"
Tabela spreminjanja SQL
Ta vrstica kode VBA uporablja DoCmd.RunSQL za spreminjanje tabele:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Plačni denar")
Ali pa z metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Plačni denar"
Spustite tabelo
Ta vrstica kode VBA uporablja DoCmd.RunSQL za spreminjanje tabele:
DoCmd.RunSQL ("Tabela tabele DROP1")
Ali pa z metodo .Execute predmeta zbirke podatkov:
CurrentDb.Izvedite "Tabelo DROP tabele 1"
Izbriši SQL
Ta koda uporablja DoCmd.RunSQL za brisanje zapisov iz tabele:
DoCmd.RunSQL ("IZBRIŠI IZ tabele1, kjer je število = 999")
Ali pa z metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "DELETE FROM table1 where num = 999"
Vstavi SQL v
Ta primerek DoCmd.RunSQL vstavi zapise v tabelo:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Ali pa z metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
Ustvari tabelo SQL
Ta koda bo ustvarila tabelo z uporabo SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Ali pa z metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Ustvari indeks
Ta vrstica kode VBA uporablja DoCmd.RunSQL za spreminjanje tabele:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & Ime stolpca & ");")
Ali pa z metodo .Execute predmeta baze podatkov:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & Ime stolpca & ");"
Indeks padca
Ta vrstica kode VBA uporablja DoCmd.RunSQL za spreminjanje tabele:
DoCmd.RunSQL "ID DROP INDEX ON ON Tabela1;"
Ali pa z metodo .Execute predmeta zbirke podatkov:
CurrentDb.Execute "DROP INDEX ID ON Tabela1;"
Ustvari bazo podatkov
Ta koda bo ustvarila bazo podatkov (brez SQL -a):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Poizvedbe SQL
Odprite poizvedbo
Za odpiranje shranjene poizvedbe lahko uporabite DoCmd.OpenQuery:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Izvedite poizvedbo
CurrentDB.Execute bo izvedel poizvedbo:
CurrentDb.Execute "qry_1", dbFailOnError
Izvozi poizvedbo v Excel
DoCmd.OutputTo bo izvozilo poizvedbo v Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"