Tento tutoriál obsahuje příklady použití SQL s VBA Access. Jak uvidíte níže, ke spouštění SQL dotazů v Accessu s VBA můžete použít buď DoCmd.RunSQL nebo CurrentDb.Execute metody.
Vyberte SQL
Tento příklad použije příkaz SQL Select k otevření sady záznamů:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("select * from Table1 where num = 0", dbOpenDynaset)
Aktualizační tabulka SQL
Tento řádek kódu VBA používá k aktualizaci tabulky metodu DoCmd.RunSQL:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 where num = 999")
Nebo můžete použít metodu .Execute objektu databáze:
CurrentDb.Execute "UPDATE table1 SET num = 0 where num = 999"
Tabulka změn SQL
Tento řádek kódu VBA používá k úpravě tabulky DoCmd.RunSQL:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN platové peníze")
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Salary money"
Skládací stůl
Tento řádek kódu VBA používá k úpravě tabulky DoCmd.RunSQL:
DoCmd.RunSQL ("DROP Table Table1")
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "DROP Table Table1"
Smazat SQL
Tento kód používá DoCmd.RunSQL k odstranění záznamů z tabulky:
DoCmd.RunSQL ("DELETE FROM table1 where num = 999")
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "DELETE FROM table1 where num = 999"
Vložit SQL do
Tato instance DoCmd.RunSQL vkládá záznamy do tabulky:
DoCmd.RunSQL ("VLOŽTE DO TABULKY1 (Příjmení, dob, počet) HODNOTY ('L1',#01/01/2001#, 78)")
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
Tabulka pro vytvoření SQL
Tento kód vytvoří tabulku pomocí SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Vytvořit index
Tento řádek kódu VBA používá k úpravě tabulky DoCmd.RunSQL:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" "ColumnName &"); ")
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Zrušte index
Tento řádek kódu VBA používá k úpravě tabulky DoCmd.RunSQL:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Nebo pomocí metody .Execute databázového objektu:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Vytvořit databázi
Tento kód vytvoří databázi (bez SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Dotazy SQL
Otevřený dotaz
K otevření uloženého dotazu můžete použít DoCmd.OpenQuery:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Spustit dotaz
CurrentDB.Execute provede dotaz:
CurrentDb.Execute "qry_1", dbFailOnError
Export dotazu do aplikace Excel
DoCmd.OutputTo exportuje dotaz do aplikace Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"