Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7864

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Создание таблицы с помощью SQL

В нашей учебной базе данных, CONCORDANCE, должны быть построены две табли-

цы. Первая таблица, DOCUMENT, будет содержать два столбца, а вторая,
CONCORDANCE, — четыре. Чтобы построить таблицу DOCUMENT, достаточно выполнить

следующую команду на языке SQL:

CREATE TABLE DOCUMENT (DOCUMENTID AUTOINCREMENT CONSTRAINT

 PRIMARY

KEY, FILENAME

Таблицу CONCORDANCE необходимо создать с помощью такой команды:

CREATE TABLE CONCORDANCE (ID AUTOINCREMENT CONSTRAINT Cl PRIMARY KEY,
DOCUMENTID LONG, WORD TEXT, COUNT

Чтобы построить таблицу с помощью конструкции CREATE TABLE языка SQL, вы-

полните следующие действия.

1. Создайте новую базу данных.

2. В окне базы данных выберите элемент Запросы (Queries) списка Объекты (Objects).
3. Щелкните на кнопке Создать (New) панели инструментов.
4. В списке режимов диалогового окна Новый запрос (New Query) выберите элемент

Конструктор (Design View) и щелкните на кнопке ОК.

5. Закройте диалоговое окно Добавление таблицы (Show Table).
6. Выберите в строке меню команду

 SQL

 View).

7. В окне редактора Запрос на выборку введите текст команды создания таблицы

DOCUMENT, приведенный выше. Повторите операцию, введя ниже команду по-
строения таблицы CONCORDANCE.

8. Выберите в строке меню команду

Таблицы DOCUMENT и CONCORDANCE (именно в этом порядке) связаны соотношени-

ем типа

 Это означает, что каждой записи таблицы DOCUMENT может

соответствовать несколько (нуль или более) записей таблицы CONCORDANCE.

Более подробные сведения о синтаксисе команды CREATE TABLE и при-

мерах ее использования вы сможете почерпнуть в оперативной справоч-
ной системе Access, адресовав Помощнику Office ключевую фразу

CREATE TABLE.

 Ниже приведено описание синтаксиса конструкции

 ' CREATE TABLE.

CREATE TABLE

 ТипДанных

 [,

После слов CREATE TABLE следует наименование таблицы и список описаний ее

столбцов, заключенный в круглые скобки. Количество столбцов произвольно. Описа-
ния столбцов разделяются символом запятой.

Ниже представлена исправленная версия команды создания таблицы DOCUMENT, в

которой для столбца FILENAME явно указана его размерность:

CREATE TABLE DOCUMENT (DOCUMENTID AUTOINCREMENT CONSTRAINT Cl PRIMARY
KEY, FILENAME

В последующих примерах мы будем ссылаться на таблицы, построенные в базе

данных

 CONCORDANCE.

 Часть III. Использование ресурсов Access


background image

Создание макроса

Макросы сохраняются в виде объектов базы данных. Чтобы создать макрос, в окне

базы данных выберите элемент Макросы (Macros) списка Объекты и щелкните на
кнопке Создать панели инструментов. Откроется окно Макрос (Macro), позволяющее
ввести текст нового макроса с именем

 предложенным системой по умолча-

нию

 (рис. 9.1).

 . . . .

' '

P. /.

 Так выглядит окно макроса

Макрос определяется во многом так же, как структура таблицы базы данных. Ле-

вый столбец окна Макрос — Макрокоманда (Action) — позволяет выбрать из раскры-
вающегося списка требуемую макрокоманду, а правый — Примечание (Comment) -
предназначен для ввода комментариев.

После того как макрокоманда выбрана, в левой нижней части окна появляются

поля ввода

 аргументов макрокоманды.

 Они играют примерно ту же роль, что и пара-

метры процедуры или функции. Аргументы снабжают макрокоманду данными, необ-
ходимыми для ее корректного выполнения.

В первой ячейке столбца Макрокоманда введите либо выберите с помощью рас-

крывающегося списка значение ЗапускМакроса (RunMacro). При этом откроется три
поля ввода аргументов — Имя макроса (Macro Name), Число повторов (Repeat Count) и
Условие повтора (Repeat Expression). Введя значения аргументов, вы сможете выпол-
нить макрос, указанный в поле Имя макроса (рис. 9.2).

9-й час. Работа с макросами


background image

 a

 г

 а

 •. а V

 1

 1

 2. Окно

 макроса с выбранной макрокомандой

После определения макроса его можно выполнить, щелкнув на кнопке Запуск

(Run) панели инструментов Конструктор макросов (кнопка снабжена пиктограммой в
виде восклицательного знака) либо выбрав в строке меню команду

Задание имени и условия выполнения макроса

Окно Макрос позволяет отобразить еще два столбца для задания дополнительных

свойств макроса — Имя макроса (Macro Name) и Условие (Condition). Увидеть их на
экране можно, выполнив последовательно две команды строки меню —

макросов

 Name) и

 Если необходимо,

чтобы система всегда отображала эти столбцы, выберите команду

 перейдите на вкладку Вид (View) диалогового окна Параметры

(Options), обратитесь к группе элементов Конструктор макросов (Show in Macro), уста-
новите флажки Столбец имен (Name Column) и Столбец условий (Conditions column),

а затем щелкните на кнопках Применить (Apply) и ОК (рис. 9.3).

Столбец Условие весьма полезен, так как позволяет задать логическое условие вы-

полнения макроса. Если результат вычисления условия равен True, макрокоманда
выполняется; в противном случае она действовать не будет.

Отдельные строки макрокода можно на время отключить, введя в полях
столбца Условие литеральные значения False.

162

Часть III. Использование ресурсов Access


background image

 ВД*М-

::

-- д.*

:

 |

 --.

 ]

 •

.

 . •

 V

 8 окне базы данных -

:

 |

• •

;

 j

Рис. 9.3. Диалоговое окно Параметры позволяет изменить
ния параметров работы

 принятые по умолчанию

В ячейки столбца Условие могут быть помещены самые разнообразные логические вы-

ражения. Рис. 9.4 иллюстрирует использование команды отрицания результата вызова
функции TableExists. Далее мы будем тестировать результат выполнения команды

CREATE TABLE языка SQL. Эта команда рассматривалась выше, в разделе

 таб-

лицы с помощью SQL". Цель тестирования — проверить, существует ли таблица, которую

мы предполагаем построить. Логическое выражение выглядит следующим образом:
Not

 ( "DOCUMENT" )

.

Рис. 9.4. Столбец Условие позволяет задать логическое выражение, управляющее
процессом выполнения макрокоманды

9-й час. Работа с макросами

163


background image

Просмотрите рис. 9.4 и текст листинга

 содержащий код функции TableExists.

Листинг

 Функция проверки наличия таблицы

1: Function

 As String) As Boolean

2 : On Error GoTo Except

 TableExists = True

4: Call

 TableName)

 Exit Function

6:

 Except:

8: TableExists = False
9:
10: End Function

Анализ

Код листинга

 будет работать независимо от того, существует ли

открываемая таблица, если в редакторе Visual Basic включена опция

Break On All Error Checked (ее можно установить на вкладке General

диалогового окна

Опция Break On All Error Checked очень удобна в процессе разработки.

Безусловно, она не нужна при распространении базы данных конечным

пользователям — ведь вы не хотите посещать своих пользователей

каждый раз при возникновении ошибки в базе данных. Приложение

должно остановиться, если нельзя обработать ошибочное условие, и нет

смысла продолжать работу.

Щелчок правой кнопкой мыши в пределах столбца Условие приводит к

появлению контекстного меню. При выборе элемента Построить (Build)

открывается диалоговое окно Построитель выражений (Condition

Builder), облегчающее задачу создания условных выражений и обеспе-

чивающее доступ к различным объектам базы данных — таблицам,

запросам, формам, отчетам, функциям, константам, операторам и

общим выражениям. Инструменты окна Построитель выражений хорошо

документированы в файлах оперативной справочной системы Access.

Оно всегда в вашем распоряжении.

Строка 1 листинга 9.1 содержит заголовок функции TableExists. В стро-

ке 2 определяется код обработки ошибок (подробнее см. главу

 час.

Обработка ошибок во время выполнения

 компилятор полу-

чает инструкцию перехода на метку Except в случае возникновения любой

ошибки выполнения кода функции. Оператор строки 3 — в предположе-

нии, что ошибок не будет (мы

 — присваивает возвращаемому

аргументу функции литеральное значение True. В строке 4 с помощью ко-

манды DoCmd. SelectObject осуществляется попытка открыть таблицу с

заданным именем. (К сожалению, функция

 не возвращает зна-

чения типа Boolean — иначе вызов ее можно было бы использовать в
столбце Условие непосредственно.) Строка 6 содержит инструкцию завер-

шения функции. Фрагмент кода в строках 8-10 выполняется только в слу-

чаях, когда при выполнении строки 4 возникает ошибка. Если функция

возвращает значение False — это сигнал о том, что таблица не найдена.

В строке 10 выполняется очистка содержимого объекта Err.

164

Часть III. Использование ресурсов Access