Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

.pdf
Скачиваний:
4975
Добавлен:
14.05.2016
Размер:
14.64 Mб
Скачать
У с л о -

10. СУБД Access 2002

3 0 3

жение или многоточие «...». Если логическое выражение в строке макрокоманды истинно, то выполняется эта макрокоманда и все последующие, в поле У с л о в и е ( C o n d i t i o n s ) которых стоит многоточие. В случае ложности логического выражения пропускается текущая макрокоманда и все непосредственно следующие за ней макрокоманды, содержащие многоточие в поле

в и е ( C o n d i t i o n s ) .

Для удобства хранения связанные по смыслу макросы можно объединять в группы. Полное имя макроса из группы включает в себя имя группы и отделенное от него точкой имя макроса. Макрокоманды в макросах представляют собой операции с параметрами из фиксированного в СУБД списка.

Все множество макрокоманд Access по функциональному принципу можно условно разделить на следующие группы:

открытие и закрытие таблиц, форм и отчетов;

вывод данных;

выполнение запроса;

проверка истинности условий и управление выполнением макрокоманд;

установка значений;

поиск данных;

построение специального меню и выполнение команд меню;

управление выводом на экран и фокусом;

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

переименование, копирование, удаление, импорт и экспорт объектов;

запуск других приложений.

Ввод макрокоманд пользователем максимально облегчен, поскольку названия самих макрокоманд, а также значения многих аргументов можно не только вводить с клавиатуры, но и выбирать из списка (в ячейке столбца М а к р о к о м а н д а ( A c t i o n ) или поля аргумента макрокоманды). Выражения в области аргументов и условий выполнения макрокоманд можно непосредственно вводить с клавиатуры или использовать Построитель выражений. Процесс ввода (выбора из списка) макрокоманд и их аргументов сопровождается подсказкой в правой нижней части окна создания макроса (рис. 10.17). Это существенно облегчает ввод макрокоманд. Для добавления в макрос других макрокоманд нужно в области ввода макрокоманд перейти на следующую строку. Макрокоманды выполняются в порядке их расположения в бланке.

Замечание.

Существует прием быстрого создания макроса, выполняющего действия над конкретным объектом. Он состоит в выборе объекта (таблицы, формы, макроса и пр.) в окне базы данных и перемещении его с помощью мыши в ячейку макрокоманды в окне макроса. При переносе макроса в ячейку макро-

304

Часть 3. Современные СУБД и их применение

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

Завершая создание макроса, требуется задать его имя. Макрос с именем AutoExec запускается автоматически при открытии базы данных. Временно отменить автоматический запуск этого макроса можно с помощью удержания клавиши <Shift> в момент открытия БД. Используя возможности автозапуска макроса, удобно выполнять различные подготовительные операции над БД после ее открытия. К таким операциям относятся вывод заставки (например, формы с картинкой) и открытие главной управляющей кнопочной формы.

Созданные и хранимые в БД макросы могут запускаться пользователем либо вызываться из других макросов или программ на Visual Basic, а также при возникновении определенных событий в БД. Событие — это любое распознаваемое объектом действие, на которое можно задать реакцию. События возникают в результате действий пользователя, выполнения инструкций Visual Basic или генерируются системой Access. Типичными событиями в Microsoft Access являются, например, нажатие кнопки мыши, изменение данных, а также открытие/закрытие формы или отчета.

Автоматический вызов макросов производят в случае наступления событий в таких объектах БД, как формы и отчеты. Всего существует около 40 событий. По функциональному назначению события можно разделить на следующие группы:

•события данных (Data Events) возникают при вводе, удалении или изменении данных в форме или элементе управления, а также при перемещении фокуса с одной записи на другую;

события клавиатуры (Keyboard Events) возникают при вводе с клавиатуры, а также при передаче нажатий клавиш с помощью макрокоманды «КомандыКлавиатуры» (SendKeys) или инструкции SendKeys;

события ошибки и таймера (Error and Timing Events) используются при обработке ошибок и синхронизации данных в формах;

события мыши (Mouse Events) возникают при действиях с мышью, например при нажатии кнопки мыши или при удержании кнопки в нажа-

том положении;

•события фильтра (Filter Events) возникают при создании или применении фильтра в форме;

события печати (Print Events) возникают при печати отчета или при его форматировании для печати;

события фокуса (Focus Events) возникают, когда форма или элемент управления теряют/получают фокус, а также в момент, когда они становятся активными/неактивными;

события окна (Window Events) возникают при открытии, изменении размеров или закрытии формы или отчета.

10. СУБД Access 2002

305

Для обработки событий в БД Access можно использовать макросы или процедуры обработки событий (на языке Visual Basic для приложений). Чтобы организовать обработку события, нужно в ячейке свойства этого события объекта (формы, отчета или элемента управления) ввести имя макроса или выбрать элемент [ П р о ц е д у р а о б р а б о т к и с о б ы т и й ] и нажать кнопку |щ Построителя (рис. 10.17). В последнем случае в соответствующем окне можно написать нужную VBA-программу.

Форма

 

Макет | Данные

События | Другие | Все }

Текущая запись

6

До вставки

 

После вставки

. . .

До обновления

 

После обновления

 

Удаление

 

До подтверждения Del

 

После подтверждения Del .....

 

Открытие

'Процедчрэ обработки событий

Загрузка

 

Изменение размера

 

Выгрузка

 

Закрытие

 

Рис. 10.17. Создание процедуры обработки события

Различные объекты БД имеют свой перечень событий, которые могут возникать в процессе работы с ними в различных режимах. Каждое действие может явиться причиной ряда других событий, возникающих в определенной последовательности. Понимание того, когда и в какой последовательности возникают события, существенно, поскольку порядок событий определяет условия и очередность выполнения макросов и процедур обработки событий.

Название свойства, как правило, происходит от имени события или даже совпадает с ним. Так, форма или отчет имеют свойство О т к р ы т и е ( О п О р е п ) , позволяющее задать макрос или процедуру обработки события при возникновении события Открытие (Open). Имя макроса или процедуры обработки события является значением свойства.

Для изменения процедуры обработки события нужно выполнить следующее: 1. В режиме Конструктора формы/отчета открыть окно свойств объекта

или его элемента и выбрать вкладку События (Events).

2.Выбрать свойство события, в ответ на которое должна выполняться процедура, и нажать кнопку Построителя рядом с ячейкой свойства. Откро-

ется окно диалога П о с т р о и т е л ь (Builder) .

3 06

Часть 3. Современные СУБД и их применение

3. Выбрать д в о й н ы м щелчком

кнопки мыши элемент П р о г р а м м ы

( P r o g r a m s ) . В окне модуля откроется процедура (если пользователь не создавал ее ранее — заготовка процедуры, содержащая инструкции Sub

и E n d S u b ) .

4.Ввести текст программы, которая должна выполняться в ответ на событие.

Создание модулей

Для автоматизации выполнения некоторых действий в простейших приложениях используют макросы. В некоторых случаях обойтись макросами не удается и приходится прибегать к написанию VBA-программ. К примеру, использование программирования может помочь в решение следующих задач:

обработка ошибок в приложении;

создание собственной функции обработки, например, округления значения;

получение прямого доступа к функциям Windows API;

создание приложения с высокой производительностью (программы компилируются и выполняются быстрее, чем макросы);

создание новых объектов БД во время работы приложения.

VBA-программы хранятся в модулях БД, которые бывают двух видов:

• стандартные — создаются пользователем и видны во вкладке БД М о д у -

л и ( M o d u l e s ) ;

модули форм/отчетов — создаются автоматически и являются частью этих объектов (форм/отчетов).

Программы на языке VBA составляются в виде процедур двух типов: функций (описатель Function) и подпрограмм (описатель Sub). Процедура может иметь параметры, через которые ей передаются значения. Основное отличие функции от подпрограммы состоит в том, что первая может в точку вызова вернуть единственное значение, вторая — значений, не возвращает. Кроме того, функцию можно вызывать из различных мест, в том числе из макросов и выражений, используемых в запросах, таблицах (в условиях на значение (Validation Rule)) или формах. Подпрограмму можно вызвать из функции или как процедуру обработки события в форме или отчете.

Стандартные модули используются для создания и хранения процедур, вызываемых из различных объектов БД. Модули форм/отчетов предназначены для создания и хранения процедур, используемых в форме/отчете. В каждом модуле формы/отчета в БД содержатся заготовки процедур обработки событий, которые вызываются в ответ на события, возникающие в форме

10. СУБД Access 2002

3 0 7

или отчете. Пользователь может создавать собственные процедуры обработки событий, добавляя тексты VBA-программ в эти заготовки.

Для создания стандартного модуля требуется в окне открытой базы дан-

ных (рис. 10.5) выбрать вкладку Модули (Modules) и нажать кнопку Создать

( N e w ) . Начать создание модуля можно также, задав в пункте В с т а в к а ( I n s e r t ) главного меню Access команду М о д у л ь ( M o d u l e ) .

Для редактирования модуля формы/отчета в окне открытой БД нужно выделить мышью соответствующий объект или перевести его в режим Конструктора. Затем в меню В и д ( V i e w ) выбрать пункт П р о г р а м м а ( C o d e ) или нажать кнопку панели инструментов. Ввод и редактирование текстов программ стандартного модуля или модуля формы/отчета производится в окне модуля (рис. 10.18).

Рис. 10.18. Окно модуля

В верхней части окна модуля находятся следующие два раскрывающихся списка: список объектов (слева) и список процедур (справа).

1. Список объектов. При редактировании модуля формы/отчета в этом списке можно выбрать форму/отчет (целиком), необходимый раздел или элемент управления, способный генерировать событие. Для выбора раздела описания имеется элемент [ О б щ а я о б л а с т ь ] ( [ G e n e r a l ] ) . Стандартный модуль в списке О б ъ е к т содержит только элемент [ О б щ а я о б л а с т ь ] .

2. Список процедур — есть список процедур выбранного объекта из первого списка, которые можно редактировать. Выбранная в этом списке процедура выводится в текстовой области окна модуля. На рис. 10.19 приведена процедура funl подачи звукового сигнала.

Сохранить введенные тексты программ можно командой С о х р а н и т ь ( S a v e ) пункта меню Ф а й л (File), с помощью кнопки сохранения панели инструментов или закрытием окна модуля с последующим подтверждением о сохранении.

3 0 8 Часть 3. Современные СУБД и их применение

Созданные и находящиеся в файле базы данных VBA-программы при первом обращении к ним автоматически компилируются Access, после чего вызываются на выполнение. Для ускорения работы приложения VBA-програм- мы можно заранее откомпилировать и сохранить в базе данных вместе с исходными текстами. Для этого нужно открыть любой модуль в БД и выполнить команду О т л а д к а | К о м п и л и р о в а т ь ( D e b u g | C o m p i l e ) . После этого, находясь в окне модуля (рис. 10.19), нужно сохранить результат компиляции с помощью команды Ф а й л | С о х р а н и т ь ( F i l e | S a v e ) . Платой за ускорение вызова VBA-программ БД является увеличение размера mdbфайла базы данных.

10.5. Работа с гиперссылками

В числе возможных типов полей таблиц Access 2002 имеется сравнительно недавно появившийся, но в то же время весьма полезный тип данных — Г и п е р с с ы л к а ( H y p e r l i n k ) . Он позволяет хранить в поле простые или сложные ссылки на файлы, документы и другие объекты, находящиеся как в базе данных, так и вне нее.

Характеристика гиперссылки

Гиперссылки могут содержать URL-адрес в сети Internet или intranet или сетевой маршрут в формате UNC к файлу на сервере локальной сети или на диске локального компьютера. Ссылка может указывать на файл в формате HTML или в формате, поддерживаемом приложением OLE или ActiveX, установленном на компьютере.

Поле гиперссылки по структуре хранимой информации является текстовым и может содержать до 2048 символов. Текст гиперссылки можно считать ее значением. Оно включает в себя до трех частей: описание (необязательное), основной адрес гиперссылки и дополнительный адрес (необязательный). Составные части отделяются друг от друга символом числа (#). Описание представляет собой текст, отображаемый в поле или элементе управления, кроме режима редактирования гиперссылки. Адрес гиперссылки — это URLили UNC-адрес (например: http:// home.netsca])e.com/comprod/index.html или \\Serv\Market\Reclama.doc). Дополнительный адрес задает именованный объект внутри файла (например, диапазон ячеек в рабочем листе Excel или закладка в документе Word).

По технике работы поле гиперссылки аналогично полю О б ъ е к т O L E ( O L E O b j e c t ) . В операциях создания и редактирования оно имеет сходство с обычным текстовым полем. Поля гиперссылок, как и другие поля, создаются в таблицах, а затем размещаются в других объектах базы данных: формах, запросах и отчетах. Чтобы увидеть поле гиперссылки в режиме просмотра таблицы, откроем таблицу Поставщики учебной базы «Борей» и сделаем видимой ко-

10. СУБД Access 2002

309

лонку Основная страница (рис. 10.19). В этой колонке имеются гиперссылкиТ— текст с подчеркиванием.

Н П о с т а в щ и к и : т а б л и ц а

 

 

 

 

 

и г а п

 

 

 

 

 

 

 

Область

Индекс

| * Страна

Телефон

"Факс

Основная страница А

L A

70117

 

США

(100) 555-4822

 

Cajun.htm

 

 

 

Ml

48104

 

США

(313) 555-5735

(313) 555-3349

 

 

 

 

 

100

 

Япония

(03) 3555-5011

 

 

 

 

 

Asturias

33007

 

Испания

(98) 598 76 54

 

 

 

 

 

 

545

 

Япония

(06)431-7877

 

Mavumi (на Web)

 

 

Victoria

3058

 

Австралия

(03) 444-2343

(03) 444-6588

 

 

 

 

 

M14 GSD

 

Великобритания

(161)555-4448

 

 

 

 

 

 

S-345 67

 

Швеция

031-987 65 43

031-987 65 91

 

 

 

 

 

5442

 

Бразилия

(11)555 4640

 

 

 

 

 

 

101785

 

Россия

(095) 998-4510

 

 

 

 

 

 

60439

 

Германия

(069) 992755

 

Plutzer (на Web)

 

 

 

27478

 

Германия

(04721)8713

(04721)8714

 

 

 

 

 

48100

 

Италия

(0544)60323

(0544) 60603

Formaggi.htm

 

 

 

 

1320

 

Норвегия

(0)2-953010

 

 

 

 

 

OR

97101

 

США

(503) 555-9931

 

, .....

 

...

i

| Запись: к 1 4

 

• 1 и 1**1 из-29

П Д 1 АР. С 7

 

 

Zi

1

 

 

J

,

±

Л

 

J.I

 

 

 

Рис. 10.19. Гиперссылки в таблице

Некоторые HTML-доку менты, на которые имеются ссылки из поля гиперссылки таблицы Поставщики, размещаются в той же папке, что и база данных «Борей». Еще один пример использования гиперссылки в этой базе данных — кнопка Просмотр списка товаров в форме Товары.

Замечание.

В случае, если у вас установлена учебная база данных Northwind.mdb, в освоении приемов работы с гиперссылками вам поможет таблица Suppliers (поле Home Page).

Основные операции по работе с гиперссылками можно выполнить, используя контекстное меню поля гиперссылки. Для этого надо установить указатель мыши на поле гиперссылки, вызвать контекстное меню и выполнить команду Г и п е р с с ы л к а ( H y p e r l i n k ) . В число команд входят команды, позволяющие открыть ссылочный документ, копировать гиперссылку в буфер обмена, добавить гиперссылку в папку И з б р а н н о е ( F a v o r i t e s ) , изменить гиперссылку или ее описание.

Создается поле гиперссылки при описании или изменении структуры таблицы БД. Для этого типа поля требуется в области указания типа поля ввести или выбрать из списка слово Г и п е р с с ы л к а ( H y p e r l i n k ) . Рассмотрим, как активизировать, вставить и редактировать значение поля гиперссылки.

310

Часть 3. Современные СУБД и их применение

Активизация гиперссылки

Активизация гиперссылки представляет собой переход по адресу, заданному выбранным значением поля гиперссылки. Для активизации гиперссылки можно подвести указатель мыши к значению поля гиперссылки и щелкнуть левой кнопкой или, выделив значение поля с помощью клавиш управления курсором (например, клавиши <ТаЬ>) и нажать клавишу <Enter>. В результате Access запускает соответствующее приложение и передает ему основной и дополнительный адреса. Если проделать это со значением гиперссылки в верхней записи таблицы (рис. 10.19), то будет вызван Internet Explorer. После завершения операций с объектом, на который был выполнен переход, происходит возврат в точку вызова.

Вставка гиперссылки

Чтобы начать вставку гиперссылки в пустое поле, нужно, прежде всего, установить текущим поле гиперссылки нужной записи таблицы, для чего переместить курсор в это поле (клавишами управления курсором или мышью). После этого можно выполнить следующее:

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

с помощью контекстного меню или команды меню Вставка | Гиперссылка (Insert | Hyperlink) вызвать диалоговое окно Добавить гиперссылку (Insert НурегНпк)(рис. 10.20).

Insert Hyperlink

 

 

 

 

 

Link to:

Text to display: JiFriends Live Browse

ScreenTfe...

|

Easting File or

Look in:

 

Samples

 

 

 

 

Analyze Sales.htm

 

 

Web Page

Current

 

Bookmark,.

 

 

 

EMPID1.BMP

 

 

 

Folder

 

 

 

 

^

EMPID2.BMP

 

 

 

 

 

 

Object in This

 

 

EMPID3.BMP

 

 

Browsed

^

EMPID4.BMP

 

 

Database

 

 

 

Pages

^

EMPID5.BMP

 

 

 

 

^

EMPID6.BMP

 

 

Create New

Recent

^

EMPID7.BMP

 

 

££ EMPID8.BMP

 

 

Page

Files

 

 

•41 EMPID9.BMP

 

 

 

 

 

 

Л

Addrgss:

wsapi/ifBrowse. dll?type=L&kw=Sports+Talk&catwords=5earch

 

 

 

 

 

 

Е-maH Address

 

 

OK

Cancel

 

 

 

 

 

Рис. 10.20. Диалоговое окно вставки гиперссылки

10. СУБД Access 2002

311

В появившемся диалоговом окне с помощью списка слева следует сначала выбрать тип гиперссылки: существующий файл или страница в Интернете (Existing File or Web Page), объект этой базы данных (Object in This Database), страница доступа к данным, создаваемая тут же (Create New Page), либо адрес электронной почты (E-mail Address). После этого в центральной части окна необходимо уточнить параметры вставляемой гиперссылки в зависимости от ее типа.

Так, в первом случае это может быть имя файла в текущей папке (Current Folder). Если же ссылочным документом является база данных Access, то в качестве возможных объектов могут выступать все ее объекты: таблицы, запросы, формы, отчеты, страницы доступа к данным, макросы и модули. Сохранение создаваемой гиперссылки в таблице происходит при нажатии кнопки ОК.

Редактирование гиперссылки

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

1.Щелкнуть мышью на соседнем слева поле в области просмотра таблицы

инажать клавишу <ТаЬ>. Гиперссылка будет выделена.

2.Нажать клавишу <F2>. Произойдет переход к режиму посимвольного редактирования текста гиперссылки. В поле гиперссылки появится текстовая строка, доступная для редактирования (рис. 10.21).

m П о с т а в щ и к и : т а б л и ц а

 

 

 

 

М З Е З

Область |

Страна

| Телефон

|

Основная

страница

 

Россия

(095) 325-2222

 

 

 

 

LA

США

 

(100) 555-4822

Cajun.htm

 

 

 

Ml

США

 

(313) 555-5735

 

 

 

—J

 

Япония

(03) 3555-5011

Таблица1 #.А. Д. ,\test1 \db11. mdb#Table Таблица11

Asturias

Испания

(98) 598 76 54

 

 

 

 

 

Япония

(06) 431-7877

Mayumi (на Web)

 

 

Victoria

Австралия

(03) 444-2343

 

 

 

 

 

Великобритания (161) 555-4448

 

 

 

 

 

Швеция

031-987 65 43

 

 

 

 

 

Бразилия

(11)555 4640

 

 

 

 

 

Россия

(095) 998-4510

 

 

 

 

 

Германия

(069) 992755

Plutzer (на Web)

 

Ч

j Запись: И 1 4

4 .

• I И !•*! из 29

<l

 

I

Л/,

 

Л

 

 

Рис. 10.21. Редактирование гиперссылки

Далее редактированием можно изменить содержимое текста гиперссылки. Как видно из рис. 10.21, описание гиперссылки находится в начале строки и отделено от основного адреса символом «#».

3 12

Часть 3. Современные СУБД и их применение

 

10.6. Использование языка SQL

Для построения и выполнения произвольной запросной функции в Access очень удобным и доступным является язык запросов по образцу QBE, поддержанный мощным интерфейсом пользователя. Язык SQL в некотором роде скрыт от пользователя, хотя весьма важен при составлении VBA-программ в приложениях Access. В этом подразделе опишем, как используется язык SQL в различных объектах БД Access. Краткая справочная информация по реализованному в Access диалекту SQL приводится в Приложении 2.

Особенности

применения запросов SQL

Напомним, что запросом

SQL называют запрос, создаваемый с помощью

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

Запрос па объединение — это такой запрос, в котором объединяются поля (столбцы) одной или нескольких таблиц или запросов в одно поле или столбец в результирующем наборе записей. Например, шесть продавцов каждый месяц представляют руководству описи имеющихся товаров. Создав запрос на объединение, можно объединить эти описи в результирующем наборе записей, а затем разработать запрос на создание таблицы, основанный на запросе на объединение.

Запрос к серверу выполняет передачу через ODBC команд SQL-серверу, например, Microsoft SQL Server. Запросы к серверу позволяют непосредственно работать с таблицами на сервере вместо их присоединения. Результатом выполнения запроса к серверу может быть загрузка записей или изменение

данных

 

 

Управляющий

запрос

создает или изменяет объекты базы данных, такие как

таблицы Access или SQL Server.

Подчиненный

запрос

состоит из инструкции S Q L S E L E C T , находящейся

внутри другого запроса на выборку или запроса на изменение. Эти инструкции вводятся в строку «Поле» бланка запроса для определения нового поля или в строку «Условие отбора» для определения условия отбора поля. Подчиненные запросы используются для выполнения следующих действий:

проверка в подчиненном запросе существования некоторых результатов

спомощью зарезервированных слов E X I S T S или N O T EXISTS;

поиск в главном запросе любых значений, которые равны, больше или меньше значений, возвращаемых в подчиненном запросе (с помощью зарезервированных слов ANY, IN или ALL);

создание подчиненных запросов внутри подчиненных запросов (вложенных подчиненных запросов).

Язык SQL в Access может применяться при разработке экранных форм, отчетов, а также при создании макрокоманд и программ на VBA.