ALTER COLUMN <имяколонки> DROP DEFAULT
Запрос позволяет создать или удалить значение по умолчанию для колонки. При этом слово COLUMN можно опустить.
CHANGE COLUMN <имя колонки> <описание колонки>
Запрос изменяет указанную колонку на новую, описание такое же, как и в CREATE TABLE. Слово COLUMN можно опустить. В описании колонки указывается имя колонки, так что имя может быть изменено.
MODIFY COLUMN <описание колонки>
Изменяет колонку на новую, описание такое же, как и в CREATE TABLE. Слово COLUMN моно опустить.
DROP COLUMN <имя>- Удаляет колонку.
DROP PRIMARY KEY - Удаляет первичный ключ
DROP INDEX <имя индекса> - Удаляет индекс
RENAME TO <новое имя таблицы> - Переименовывает таблицу
в. Запрос CREATETABLE
Этот запрос позволяет динамически создать новую таблицу в базе данных. Например:
В следующем управляющем запросе с помощью инструкции CREATE TABLE создается таблица «Друзья». Приведенная инструкция определяет имена и типы данных для полей таблицы и создает для поля «Код» индекс, делающий это поле ключевым.
CREATE TABLE Друзья
([Код] integer,
[Фамилия] text,
[Имя] text,
[ДатаРождения] date,
[Телефон] text,
[Заметки] memo,
CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));
8. Формирование и выполнение запросов в реальном времени (инструментарий VisualBasicForApplications)
Для того, чтобы запрограммировать автоматизацию действий с запросами, MicrosoftAccess предлагает два варианта:
а. Использование объектов доступа к данным (DAO)
б. Использование объекта-макрокоманды DoCmd.
Первый путь позволяет нам создавать хранимые запросы в базе данных (они будут появляться во вкладке «Запросы») или же работать с их результатами напрямую. Объект DoCmd, а точнее, его метод RunSQL используется исключительно для запуска запросов на изменение данных или управляющих запросов MSJet.
Покажем общие приемы создания и исполнения запросов с помощью DAO. Для этого будем использовать объект Application.CurrentDB и, для создания/удаление хранимых запросов – коллекцию Queries, в этом объекте хранящуюся. Для работы с данными в реальном времени применим объект Recordset.
За основу возьмем запросы на выборку, показанные в разделе 2 данного реферата.
Option Compare Database
Option Explicit
Public Sub QRY_Example1()
Dim s As String
S = “SELECT Количество FROM Склад_гр INNER JOIN “ + _ “Ассортимент ON (Склад_гр.ID_товара = Ассортимент.ID_товара) ”+ _
“ORDER ASCEND BY Наименование;”
Application.CurrentDb.CreateQueryDef("Query1", s)
EndSub
Такая процедура создаст в базе данных новый запрос с именем Query1 и текстом, хранящимся в переменной S. А следующая – удалит его:
Public Sub QRY_Example2()
Application.CurrentDb.QueryDefs.Delete("Query1")
EndSub
Теперь покажем, как работать с полученными из запроса данными напрямую (эта процедура выведет сообщения, в которых перечислит количество и наименование всех товаров):
Public Sub QRY_Example3()
Dim s As String
Dim rst As New Recordset
S = “SELECT Количество FROM Склад_гр INNER JOIN “ + _ “Ассортимент ON (Склад_гр.ID_товара = Ассортимент.ID_товара) ”+ _
“ORDER ASCEND BY Наименование;”
set rst = Application.CurrentDb.OpenRecordset(s, dbOpenDynaset, dbReadOnly)
rst.MoveFirst
for I = 1 to rst.RecordCount do
MsqBox “На складе хранится “ + str(rst.Fields(“Количество”)) +” “ + rst.Fields(“наименование”)
Rst.MoveNext
Next
EndSub
По поводу свойств и методов объектов доступа к данным подробные сведения можно получить во встроенной справке VBA.
С объектом DoCmd все намного проще:
Public Sub QRY_Example4()
Dim s As String
Dim s2 As String
Dim rst As New Recordset
S = InputBox “Введите наименование товара”, “Наша_БД”
S2 = InputBox “Введите количество этого товара”, “Наша_БД”
S = “INSERT INTO Товары VALUES “ + _
“(MAX(ID_Товара)+1, “ + “‘” + s + ”’,” + s2 + “);”
DoCmd.RunSQLs
EndSub
Эта процедура в запросит в диалоговом окне ввести наименование товара и его количество, а затем добавит эти значения в виде новой записи в таблицу «Товары».
На этом демонстрацию возможностей ядра MicrosoftJet в области выполнения SQL-запросов можно считать оконченной.
9. Выводы
В данном реферате были рассмотрены основные типы запросов, которые поддерживаются MicrosoftAccess – запросы на выборку, добавление, удаление и обновление записей и управляющие запросы. Также освещена тема динамического формирования и выполнения запросов SQL средствами VisualBasicforApplications.
10. Списоклитературы:
1. Microsoft Access 2002 Bible – Cary Prague and Michael Irwin – N.Y.: Hungry Minds, 2002.
2. Mirosoft Access 2002 Help system © 1991-2002 Microsoft Corp.
3. Alter table – лекция © RSC-Team 2001-2005 (http://rsc-team.ru/bk/index.pl?rzd=2&group=lection&ind=103)