Този урок съдържа примери за използване на SQL с VBA Access. Както ще видите по -долу, за да стартирате SQL заявки в Access с VBA, можете да използвате или DoCmd.RunSQL или CurrentDb.Execute методи.
SQL Избор
Този пример ще използва израза SQL Select за отваряне на набор от записи:
Dim rs като набор от записи rs = CurrentDb.OpenRecordset ("изберете * от Таблица1, където num = 0", dbOpenDynaset)
Таблица за актуализация на SQL
Този ред с код VBA използва метода DoCmd.RunSQL за актуализиране на таблица:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 where num = 999")
Или можете да използвате метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "UPDATE table1 SET num = 0 where num = 999"
SQL Alter Table
Този ред с код VBA използва DoCmd.RunSQL за промяна на таблица:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Заплати")
Или с метода .Execute на обекта на базата данни:
CurrentDb.Eeecute "ALTER TABLE Table3 ADD COLUMN Пари за заплати"
Пускане на таблица
Този ред с код VBA използва DoCmd.RunSQL за промяна на таблица:
DoCmd.RunSQL ("DROP Table Table1")
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "DROP Table Table1"
SQL Изтриване
Този код използва DoCmd.RunSQL за изтриване на записи от таблица:
DoCmd.RunSQL ("ИЗТРИВАНЕ ОТ таблица 1, където номер = 999")
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "ИЗТРИВАНЕ ОТ таблица 1, където номер = 999"
SQL вмъкване в
Този екземпляр на DoCmd.RunSQL вмъква записи в таблица:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
SQL Създаване на таблица
Този код ще създаде таблица с помощта на SQL:
CurrentDb.Изпълнете "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Създаване на индекс
Този ред с код VBA използва DoCmd.RunSQL за промяна на таблица:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Падащ индекс
Този ред с код VBA използва DoCmd.RunSQL за промяна на таблица:
DoCmd.RunSQL "ИДЕНТИФИКАТОР НА ИЗКЛЮЧВАНЕ НА ТАБЛИЦА1;"
Или с метода .Execute на обекта на базата данни:
CurrentDb.Изпълнете "DROP INDEX ID ON Table1;"
Създаване на база данни
Този код ще създаде база данни (без SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
SQL заявки
Отворете заявката
Можете да използвате DoCmd.OpenQuery, за да отворите запазена заявка:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Изпълнете заявка
CurrentDB.Execute ще изпълни заявка:
CurrentDb.Изпълнете "qry_1", dbFailOnError
Експортирайте заявка в Excel
DoCmd.OutputTo ще експортира заявка в Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"