Смекни!
smekni.com

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)