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