Tento tutoriál obsahuje príklady použitia SQL s VBA Access. Ako uvidíte nižšie, na spustenie dotazov SQL v programe Access s VBA môžete použiť buď DoCmd.RunSQL alebo CurrentDb.Execute metódy.
Vybrať SQL
Tento príklad použije príkaz SQL Select na otvorenie sady záznamov:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("select * from Table1 where num = 0", dbOpenDynaset)
Aktualizačná tabuľka SQL
Tento riadok kódu VBA používa na aktualizáciu tabuľky metódu DoCmd.RunSQL:
DoCmd.RunSQL ("AKTUALIZÁCIA tabuľky 1 SADA číslo = 0, kde číslo = 999")
Alebo môžete použiť metódu .Execute databázového objektu:
CurrentDb.Execute "UPDATE table1 SET num = 0 where num = 999"
Zmena tabuľky SQL
Tento riadok kódu VBA používa na zmenu tabuľky DoCmd.RunSQL:
DoCmd.RunSQL („ALTER TABLE Table3 ADD COLUMN Platové peniaze“)
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Platové peniaze"
Sklopný stôl
Tento riadok kódu VBA používa na zmenu tabuľky DoCmd.RunSQL:
DoCmd.RunSQL ("Tabuľka DROP, tabuľka1")
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "DROP Table Table1"
Odstrániť SQL
Tento kód používa DoCmd.RunSQL na odstránenie záznamov z tabuľky:
DoCmd.RunSQL ("DELETE FROM table1 where num = 999")
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "DELETE FROM table1 where num = 999"
Vložiť SQL do
Táto inštancia DoCmd.RunSQL vkladá záznamy do tabuľky:
DoCmd.RunSQL ("VLOŽIŤ DO TABUĽKY1 (Priezvisko, nar., Počet) HODNOTY ('L1',#01/01/2001#, 78)")
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "INSERT INTO Table1 (LastName, nar, num) VALUES ('L1',#01/01/2001#, 78)"
Tabuľka vytvorenia SQL
Tento kód vytvorí tabuľku pomocou SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Vytvoriť index
Tento riadok kódu VBA používa na zmenu tabuľky DoCmd.RunSQL:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" "ColumnName &"); ")
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" "ColumnName &"); "
Drop index
Tento riadok kódu VBA používa na zmenu tabuľky DoCmd.RunSQL:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Alebo pomocou metódy .Execute databázového objektu:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Vytvoriť databázu
Tento kód vytvorí databázu (bez SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Dotazy SQL
Otvorený dotaz
Na otvorenie uloženého dotazu môžete použiť DoCmd.OpenQuery:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Spustiť dotaz
CurrentDB.Execute vykoná dotaz:
CurrentDb.Execute "qry_1", dbFailOnError
Exportujte dotaz do Excelu
DoCmd.OutputTo exportuje dotaz do programu Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"