Цей підручник містить приклади використання SQL із доступом VBA. Як ви побачите нижче, для запуску запитів SQL у програмі Access з VBA можна скористатися будь -яким з DoCmd.RunSQL або CurrentDb.Execute методи.
Вибір SQL
У цьому прикладі буде використано оператор SQL Select для відкриття набору записів:
Dim rs як набір записів rs = CurrentDb.OpenRecordset ("вибрати * з таблиці1, де число = 0", dbOpenDynaset)
Таблиця оновлення SQL
У цьому рядку коду VBA використовується метод DoCmd.RunSQL для оновлення таблиці:
DoCmd.RunSQL ("ОНОВЛЕННЯ таблиці1 НАЗАД num = 0 де num = 999")
Або ви можете скористатися методом .Execute об'єкта бази даних:
CurrentDb.Виконати "UPDATE table1 SET num = 0 where num = 999"
Таблиця змінних SQL
Цей рядок коду VBA використовує DoCmd.RunSQL для зміни таблиці:
DoCmd.RunSQL ("АЛЬТЕР ТАБЛИЦЯ Таблиця 3 ДОБАВИТИ СТОЛБУ Гроші заробітної плати")
Або за допомогою методу .Execute об'єкта бази даних:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLMN Заробітна плата"
Падіння таблиці
Цей рядок коду VBA використовує DoCmd.RunSQL для зміни таблиці:
DoCmd.RunSQL ("Таблиця DROP Table1")
Або за допомогою методу .Execute об'єкта бази даних:
CurrentDb.Виконати "Таблицю DROP 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.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
Створення таблиці SQL
Цей код створить таблицю за допомогою SQL:
CurrentDb.Execute "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.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Індекс падіння
Цей рядок коду VBA використовує DoCmd.RunSQL для зміни таблиці:
DoCmd.RunSQL "ІДЕНТИФІКАЦІЯ ІНДЕКСУ ВИКОРИСТАННЯ Таблиця1;"
Або за допомогою методу .Execute об'єкта бази даних:
CurrentDb.Виконати "ІДЕНТИФІКАЦІЮ ІНДЕКСУ ПІДКЛЮЧЕННЯ Таблиця1;"
Створення бази даних
Цей код створить базу даних (без 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"