Книги, научные публикации Pages:     | 1 |   ...   | 4 | 5 | 6 | 7 |

Ирина Харитонова САМОУЧИТЕЛЬ OFFICE ACCESS 2003 Прочитав эту книгу, вы научитесь: ...

-- [ Страница 6 ] --

Двум уровням группировки соответствуют пары внешних разделов: Книги по разделам-Раздел и Книги по разделам-Автор. Слева от поля, по которому груп пируются данные, располагается маркер развертывания структуры. С помо Напоминаю, это имя запроса, mi котором базируется страница.

Создание и изменение страниц доступа к данным в режиме конструктора щью этого маркера можно развернуть или свернуть список элементов одной группы. Каждому разделу, содержащему поля данных, соответствует свой раздел кнопок перехода.

Гймвк* 2ив Вдгавка Формат Семи*: Окно Справил *- И ДатаЦвна _ I Книги tw аеторам ^ -Г ХХJIJ Разпел Х TJ Автор......

Щ Название :

-^ Город ;

- -3g Издательство +! ff М естаХране нияЗапрос i г-ре&ода: Jf Hfini тор аздвпаи tl-S ЧктатвльФорм1(пяр :

'" ' - "' :N < Книги пз раздепэс fO i A I ^ 1 V/ Ъ УЛ *l ~f * Книги то раздйпаи-Автор 10 иг |2 М* Х.й,. Х J. \ U >;

.

* Рис. 12.26. Странииа Тематический каталог, созданная с помощью мастера Разберемся, как управлять сортировкой и группировкой записей на стра нице.

Панель инструментов Макет страницы (Page Design) очень похожа на панель инструментов Конструктор отчетов (Report Design), но на ней появилось не сколько новых кнопок:

Г --ФЛ Ч Повысить уровень (Promote);

<. ;

- Понизить уровень (Demote);

Ч Группировать по таблице (Group by Table).

Чтобы добавить уровень группировки, нужно выделить присоединенный элемент управления (поле, связанный HTML и проч.) Ч назовем его элемен том группировки Ч и нажать кнопку Повысить уровень (Promote). Чтобы сгруппировать данные не по одному выделенному полю, а по всем полям со держащей его таблицы, нужно нажать кнопку Группировать по таблицам 378 Занятие 12. Странииы доступа к данным ( G r o u p by Table). При этом будет автоматически добавлено нужное количест во уровней группировки. Чтобы убрать группировку или соединить два раздела группировки в один, нужно выделить элемент группировки (поле или другой элемент) и нажать кнопку Понизить уровень (Demote).

При добавлении на страницу нового уровня группировки появляется новый раздел, называемый заголовком группы. Автоматически туда помещаются элемент группировки и маркер развертывания структуры. Этот маркер име ет вид маленькой кнопки со значком л+.

В данном случае у нас уже добавлено нужное число уровней группировки, од ЗАДАНИЕ нако вы можете попробовать повысить или понизить уровни группировки для элементов управления на странице Тематический каталог и протестировать страницу, чтобы уви деть, как будут изменяться при этом данные. В конце упражнения вы должны установить уровни группировки в первоначальное состояние.

Настройка уровней группировки на странице выполняется не в специаль ном окне Сортировка и г р у п п и р о в к а (Sorting and G r o u p i n g ), как это делается в форме или отчете, а в окне Свойства уровня группы (Group Level).

2. Щелкните правой кнопкой на заголовке самого верхнего уровня Книги по разделам-Раздел и выберите н контекстном меню команду С в о й с т в а у р о в н я г р у п п ы (GroupLevel). Появится окно свойств (рис, 12.27). Необходимо изме нить некоторые параметры этой группы:

П Значение свойства Раздел кнопок перехода (Record Navigation Section) уста новите рапным Ложь (False). Это позволит удалить панель кнопок перехо да для внешней группы со страницы.

Удаляйте со страницы ненужные панели перехода по записям, чтобы она не напоминала лестницу с большим количеством ступенек. Иначе пользовате ли будут в них путаться.

D Значение свойства Размер страницы доступа (Data Page Size) автоматически установится равным Все (АИ), чтобы при открытии страницы отобража лись названия всех разделов библиотеки.

'"^ Эти два параметра связаны между собой: если вы не хотите отображать па нель перехода по записям, второй параметр должен иметь значение Все, чтобы отобразить все группы, иначе нельзя увидеть последние группы. По умолчанию же предлагается отображать только несколько первых групп.

D Убедитесь, что значение свойства Развернуто по у м о л ч а н и ю ( E x p a n d e d by Default) установлено равным Л о ж ь (False) 1. Это означает, что при откры тии страницы маркер развертывания данной группы будет иметь значок Обычно так устанавливается значение этого свойства но умолчанию.

Создание и изменение странии доступа к данным в режиме конструктора 3/ л+, и записи, входящие в группу, отображаться не будут. Такая странич ка будет отображаться быстрее.

ШГ GioupLevel: Книги по разделам Раядек,,,, |Труппа^миги та.pas делам-Р.;

";

'.,5 !,".. Пожь '..,,. Ложь ',..,'..->'.,-...'., Иетта... I > ;

&;

dscEachValue Истина^ Щшожь Рис. 12.27. Свойства уровня группы i 3. Аналогично установите свойства уровня группы для группы Книги по разде лам-Автор.

Л. И, наконец, щелкните на заголовке самой внутренней группы Книги по разде лам и раскройте для нее свойства уровня группы. Изменим структуру этой группы, установив соответствующие значения параметров. Все издания в этой группе представим в виде таблицы.

D Установите значение Истина (True) для свойства Раздел подписей (Caption Section). Над заголовком группы появится новый раздел Ч Captions (Под писи). В этом разделе помещается обычно столбцов группы.

D Свойство Размер страницы доступа (Data Page Size) нужно установить рав ным 10, чтобы при развертывании группы Авторы одновременно отобра жалось не более 10 записей об изданиях.

D Порядок сортировки внутри группы установлен правильно Ч по полю На звание.

Обратите внимание, что среди свойств уровня группы есть три уже знакомых вам свойства Ч Allow Additions (Разрешить добавление), Allow Deletions (Разрешить удаление) и Allow Edits (Разрешить изменения) (см. рис. 12.27).

Теперь разработчик может, устанавливая значения этих свойств, создавать странички либо только для просмотра, либо для ввода и изменения данных.

Когда в группе включены поля из разных таблиц, тогда изменения разреше ны только для полей одной таблицы;

имя этой таблицы должно быть указа но в свойстве UniqueTable соответствующего раздела страницы.

D Перенесите в раздел Подписи (Captions) все надписи из раздела Заголовок:

Книги по разделам, расположив их по горизонтали. Поля данных этой группы 380 Занятие 12. Страницы доступа к данным также необходимо разместить на одной линии по горизонтали. Сделать это не очень просто, так как, к сожалению, на странице нельзя переме щать (как, впрочем, и удалять) поле без связанной с ним надписи. Но можно отдельно переносить (и удалять) надпись. Поэтому придется пе ремещать поле вместе с надписью, и когда оно уже окажется на нужном месте, перенести надпись в раздел Подписи. Попробуйте подвигать все эти элементы управления Ч вы должны получить картину, аналогичную той, что представлена на рис. 12.28.

D Уменьшите высоту группы К н и г и по разделам, выделив эту группу, щелк нув на заголовке и перетащив нижний маркер изменения размеров вверх.

(S Тематический кагаяог : странице доступа к далиым':

:Н Ьмгивйг.кЫ rto йа^яИ V и ^ -KK'% Х> | if^* ?Х jg i Книги по разделан |0-|1 и Рис. 12.28. Добавление раздела Подписи на страницу 5. Пользуясь панелью инструментов Формат (страница) (Formatting (page)), на стройте параметры отображения элемента управления Ч размер элемента управления, шрифт, размер шрифта, цвет текста Ч как вам захочется.

Обращаю ваше внимание на использование именно панели инструментов,так как в окне свойств элемента управления, конечно же, есть соответствующие свойства, но почему-то не для всех свойств есть раскрывающиеся списки зна чений. Например, такого списка нет у свойства Тип границы (Border Style).

6. Удалите надписи к элементам группировки в двух внешних группах: Книги по разделам-Раздел и К н и г и по разделам-Автор.

7. Можно изменить значок, который помещается на маркер развертывания по умолчанию. Щелкните на маркере внешней группы и в окне свойств выбе рите в списке значение свойства Src. В нашем примере выбрано значение Черная стрелка.

Создание и изменение страниц доступа к данным в режиме конструктора Кроме тех стандартных значков на маркере, которые предлагаются в списке, можно поместить туда любой другой рисунок. Для этого нужно иметь два файла с рисунками Ч один должен содержать рисунок для маркера в раз вернутом состоянии, а другой Ч в свернутом состоянии. В ячейке, соответ ствующей значению свойства Src, нужно ввести путь и имя файла, содержа щего свернутый рисунок. Кроме того, должно быть выполнено соглашение об и менах этих файлов Ч файл с развернутым рисунком должен иметь то же имя, что и файл со свернутым рисунком, но с постфиксом expanded, на пример, cross.gif и crossexpanded.gif. Естественно, что маркеры в каждой группе могут иметь свои значки.

Щелкните на тексте Название страницы в верхней части страницы (это эле мент управления) и введите название Наша библиотека.

После выполнения всех описанных действий страница приобретет вид, близ кий к тому, что представлен на рис. 12.29.

, Тематический каталог : страница достчпз к данным Наша библиотека J J.!:..-' '-if''-'.;

' М.ДГ.<1,. |aVlff!iUF Книги по разделай )0-f I па Рис. 12.29, Странииа доступа к данным Тематический каталог в режиме конструктора 9. Переключитесь в режим Просмотр страницы (Page View) и посмотрите, как бу дет выглядеть созданная вами страница. Как она получилась у нас, видно H;

I рис. 12.30.

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

Так же как в формах и отчетах, Microsoft Office Access 2003 позволяет применит], к странице доступа к данным специальный шаблон оформления, только в данном случае он по традиции называется темой. Темы страниц содержат типовые вари анты оформления страницы Ч фон, стили текста, графических элементов и т. п.

Занятие 1 2. Страницы доступа к л.шным Наша библиотека k Искусство k История Адам I Панопапа IИзбранная поэзия [Москва н -5 ' Книги по разделен ыз i Пушкин Александр ж.

Хайям Омар L Рис. 12.30. Страница доступа к данным Тематический каталог в режиме просмотра 1. Снова переключитесь в режим конструктора.

2. Выберите команду Формат > Тема (Format > Theme). Появится диалоговое окно Тема (Theme) (рис. 12.31).

Арктша Заголовок Атлас Бетон Зесча Х Маркированный список Вода Хз Маркированный список 'есивтричвская ^ Голубая бездна Х Маркированный список Горизонт Декорация Д*нь Горизонтальная линия.

;

Закругпени* Затмение Ирис Заголовок <аньон Капсулы Квадрант Кирпич Контраст Рис. 12.31. Диалоговое окно Тема Создание и изменение страниц доступа к данным о режиме конструктора 3. В списке Выберите тему (Select Theme) выделите тему, которую необходимо применить для страницы доступа к данным. На схеме Образец (Preview) ото бражается пример страницы, отформатированной при помощи выделенной темы.

4. Отметьте флажками дополнительные параметры форматирования, которые вы хотите применить к странице.

5. Чтобы для всех создаваемых страниц использовалась выделенная тема, на жмите кнопку По у м о л ч а н и ю (Default), а в появившемся окне нажмите кнопку Да (Yes).

6. Нажмите кнопку ОК. Тема будет применена к странице.

Для каждого объекта страницы доступа к данным и для всей страницы мож но определить сценарий поведения Ч процедуру, аналогичную процедуре обработки событий в формах. Эти процедуры пишутся на языках JavaScript или Visual Basic Script (последний является упрощенным вариантом Visual Basic для приложений и используется для создания модулей Access). Чтобы создать сценарий, нужно щелкнуть правой кнопкой на элементе управления или на странице и выбрать команду Редактор сценариев (Script Editor). За пустится приложение Microsoft Script Editor, в котором и происходит созда ние сценариев для страниц доступа к данным. Однако описание процедур создания сценариев выходит за рамки нашего курса.

& Тематический каталог Наша библиотека гь-1 Детская литература } Дрзматургия v Искусство ь, Истерия ь, Поэзия k. ПСИХОЛОГИЯ ь Религия k-- Фантастика.ь;

Филоссфм Рис. 12.32. Страница Тематический каталог, открытая в Internet Explorer 384 Занятие 1 2. Странииы доступа к данным 7. Заключительным штрихом в этом примере будет добавление на страницу доступа к данным горизонтальной линии для того, чтобы отделить заголо вок от области данных. Для этого нажмите кнопку Линия (Line) панели эле ментов и нарисуйте линию под заголовком Наша библиотека. После этого со храните страницу и откройте ее в программе Internet Explorer.

На рис. 12.32 представлена получившаяся страница сразу после открытия, ко гда все группы еще свернуты.

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

1. Закройте открытую базу данных Библиотека.mdb.

2. Нажмите кнопку Создать (New) и выберите в области -задач Создание файла (New File) строку Пустая страница доступа к д а н н ы м (Blank Data Access Page). По явится диалоговое окно Выбор источника данных (Select Data Source) (рис. 12.33). По умолчанию к этом окне отображается папка Мои источники данных (My Data Source). Как правило, именно здесь хранятся все необходи мые файлы подключений. У нас пока нет файла подключений к базе данных Библиотека.mdb, который мы создаем. Мы будем создавать его с помощью мастера подключения данных (Data Connection Wizard).

[и|+Нов ре подключение к SQL-сервер у, ос щ+Подключение к нсесшу источнику данных.ode JJJ - С'^ДЭть>,., 'St'.-JBce....

источники данных (*,odc:.*.1"Ш!

^АЯ.

,<.. ^ Рис. 12.33. Выбор источника для странииы доступа к данным Создание обособленной страницы доступа к данным Зо 3. Нажмите кнопку Создать (New Source), запустится мастер, и на первом шаге будет предложено выбрать тип источника данных, к которому будет под ключена данная страница.

4. Выберите пункт Д о п о л н и т е л ь н о (Other/advanced) и перейдите к следующему шагу.

5. На следующем шаге появляется диалоговое окно Data Link Properties (Свойства подключения к д а н н ы м ) с раскрытой вкладкой Provider (Поставщик данных) (рис. 12.34). На ней необходимо выбрать провайдера OLE DB, который бу дет обеспечивать связь с источником данных. Источником данных в нашем случае будет являться база данных Access. Поэтому выберите пункт Microsoft Jet OLE DB Provider и нажмите кнопку Next (Далее).

BS Data Link Piopeitiet j (j.-<-к*,:,, l. t-o..* ЁЁШШф iW|n| щ* -л'ХХ '- Х' 'ХХХ Microsoft Jei 4.0 OLE DB Provider Microsoft OLE DB Provider for SQL Server Рис. 12.34. Диалоговое окно Свойства связи с данными 6. Откроется вкладка Connection ( П о д к л ю ч е н и е ) этого же окна, где нужно вы брать базу данных, которая будет служить источником данных для страни цы. Нажмите кнопку построителя справа, в диалоговом окне Выбор базы дан н ы х Access (Select Database Access) выберите файл Библиотека,mdb и нажмите кнопку ОК.

7. Снова появится окно мастера с перечнем таблиц и запросов этой базы дан ных. Нажмите кнопку Далее (Next).

8. В последнем окне мастера введите имя файла подключений в поле И м я фай/.а (File Name): Библиотека.ode и нажмите кнопку Готово (Finish).

386 Занятие 1 2. Странииы доступа к данным 9. Файл подключений будет создан и появится в диалоговом окне Выбор источ н и к а данных, Чтобы просмотреть содержимое этого файла, нужно щелкнуть на нем правой кнопкой и выбрать в контекстном меню команду Открыть с (Open With): укажите Блокнот (Notepad) (рис. 12.35). Файл откроется в тексто вом редакторе, и вы сможете посмотреть его содержимое.

Выбор источника данных...1 J. * Орет;

" Рис. 12.35. Просмотр файла подключений 10. Найдите тег со строкой подключений, которую можно изменить, если, например, файл Библиотека.mdb будет перемещен в другую папку.

11. Закройте Блокнот и вернитесь в окно Выбор источника данных.

12. Нажмите кнопку Открыть (Open). Будет открыта среда Access, а в ней пустая страница в режиме конструктора (рис. 12.36). На этой странице будет создан один несвязанный раздел, и с пей можно работать дальше. Обратите внима ние, что кнопка Окно базы данных (Database Window) панели инструментов за крыта, и открыть базу данных Библиотека.mdb в данном режиме нельзя. При этом, однако, полностью действует конструктор страниц доступа к данным, в списке полей можно видеть все таблицы и запросы базы данных Библиоте ка.mdb, которые будут источниками данных для разделов странички, и от крыта панель элементов.

13. Сохраните созданную страницу командой Файл > Сохранить как (File > Save As) под именем Новая страница и закройте ее.

Создание обособленной страницы доступа к данным Зо/ ХCfcQ Список пивай (^Страница!. страница доступац данным Рис. 12.36. Обособленная странииа доступа к данным в режиме конструктора 'Э Страница! - Mictosolt Internet Qnploie( - (Автокопнан работа] Х I -Адрес;

SQ\|[inaVkc2003\Ch12VHo6aflCTpaHHua.htm ой компь-отер Рис. 12.37. Обособленная странииа доступа к данным в окне Internet Explorer 14. Найдите эту страницу и папке и щелкните на ней дважды, Страница откро ется в окне Internet Explorer (рис. 12.37).

388 Занятие 1 2. Страницы доступа к данным Эта страница пока пуста. Чтобы можно было с ней работать, достаточно на жать кнопку П р а в и т ь в Microsoft Office Access панели инструментов Internet Explorer.

Подведение итогов На этом занятии мы рассмотрели одно из самых последних средств доступа к данным Microsoft Office Access 2003 Ч страницы доступа к данным. Вы на учились:

Х создавать страницы с помощью мастера;

Х подключать к базе данных страницы, созданные ранее и, возможно, даже другими средствами;

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

Х создавать с помощью мастера раскрывающиеся списки;

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

Х просматривать страницы, как в окне базы данных Access, так и в Internet Explorer.

Разумеется, мы рассмотрели далеко не все средства создания страниц доступа к данным, однако если вы проделали все примеры этого занятия, вы сможете создавать простые страницы доступа к данным. Чтобы ваши страницы были бо лее разнообразными и эффектными, включали такие элементы, как анимация и т. д., вам придется познакомиться и с редактором сценариев Microsoft Script Editor, и с языком разметки документов HTML, но эти вопросы уже выходят за рамки нашей книги.

Часть VI Настройка приложений Ъ cCL Ь яга ув ' ? <^-%> ?, с^^ г / ХJ-i^^if.

П|:

ЗАНЯТИЕ Макросы ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете:

Х для чего используются макросы;

Х какие существуют макрокоманды;

Х как создать макрос и как его тестировать;

Х как связать макрос с событием в форме, которое он должен обрабатывать;

Х как использовать условия в макросе;

Х как создать группу макросов;

Х как с помощью макросов управлять поведением формы.

Что такое макросы Для выполнения упражнений этого занятия вам понадобится только файл Биб лиотека, mdb, в котором вы создаете свое приложение. Откройте его перед нача лом занятия Что такое макросы Кроме всех интерактивных средств, мастеров, конструкторов, построителей, ко торые позволяют создать приложение, СУБД Access имеет два языка, програм мирования:

Х Visual Basic для приложений (VBA);

Х язык макрокоманд.

Один из этих языков, язык макрокоманд, и будет предметом нашего обсужде ния на этом занятии. Язык макрокоманд Access используется при создании макросов.

Язык VBA предназначен для пользователей, которые достаточно хорошо владеют приемами программирования. Его мы в этой книге рассматривать не будем.

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

Таблица 13.1. Макрокоманды Microsoft Office Access Категория Назначение Макрокоманда Работа с данными Отбор данных ПрименигьФильтр (ApplyFilter) в формах [1 отчетах Перемещение по СледующаяЗапись (FindNext) данным НайтиЗапись (FindRecord) КЭлементуУправления (GoToControl) НаСтраницу (GoToPage) НаЗались (GoToRecord) Обновление данных Обновление (Requery) или экрана ПоказатьВсеЗаписи (ShowAURecords) продолжение ТУ Примеры вы можете найти на сайте издательства www.piter.com па странице, посвящен ной этой книге.

392 Занятие 13. Макросы Габлииа13.1 (продолжение) Макрокоманда Назначение Категория Выполнение команды ВыполнитьКоманду (RimCommand) Выполнение ЗапускМакроса (RunMacro) Выполнение макроса, ЗапускПрограммы (RunCode) процедуры или ОткрытьЗапрос (OpenQuery) запроса ЗапускЗапросаЗС - (RunSQL) ЗапускПриложения (RunApp) Выполнение другого приложения ОтменитьСобытие (CancelEvent) Прерывание Выход (Quit) иыполнепия ОстановитьВсеМакросы (StopAlLMacros) ОстановитьМакрос (StopMacro) Выход (Quit) Выход из Microsoft Access Вы вести ВФормате (OutputTo) Импорт/экспорт Передача объектов ОтправитьОбъект (SendObject) Microsoft Access в другие приложения ПреобразоватьБазуДанных Преобразование формата данных (TransferDatabase) ПреобразоватьЭлектроннуюТаблицу (TransferSpreadsheet) ПреобразоватьТекст (TransferText) КопироватьОбъект (CopyObject) Работа с объектами Копирование, Переименовать (Rename) переименование п Сохранить (Save) сохранение объекта Удаление объекта УдалитьОбъект (DeLeteObject) Изменение размеров Развернуть (Maximize) Свернуть (Minimize) или положения окна СдвигРазмер (MoveSize) Восстановить (Restore) ОткрытьФорму (OpenForm) Открытие и закрытие ОткрытьМодуль (OpenModule) объекта ОткрытьЗапрос (OpenQuery) ОткрытьОтчет (OpenReport) ОткрытьТаблицу (ОрепТаЫе) ОткрытьСтраницу (OpenDataAccessPage) Закрыть (Close) ОткрытьФорму (OpenForm) Печать объекта ОткрытьЗапрос (OpenQuery) ОткрытьОтчет (OpenReport) Печать (Printout) Выделение объекта ВыделитьОбъект (SelectObject) Что такое макросы Категория Макрокоманда Назначение ЗадатьЗначение (SetVaLue) Задание значения поля, элемента управления или свойства Обновление объекта ОбновитьОбъект (RepaintObject) ЗадатьКомандуМеню (SetMenuItem) Прочие Задание состояния пунктов меню в специальной или общей строке меню ВыводНаЭкран (Echo) Вывод информации ПесочныеЧасы (Hourglass) на экран Сообщение (MsgBox) УстановитьСообщения (SetWarnings) КомандыКлавиатуры (SendKeys) Генерация нажатий клавиш ПанельИнструменгов (ShowToolbar) Вывод на экран или скрытие встроенной или специальной панели инструментов Сигнал (Веер) Подача звукового сигнала Конечно, в рамках одного занятия не удастся рассмотреть все это разнообразие макрокоманд, но вы познакомитесь на примерах с некоторыми из них и научи тесь создавать макросы. Макросы обычно используются в приложении Access для обработки событий.

Формы, отчеты и элементы управления, будучи объектами Microsoft Access, об ладают определенным набором свойств событий. Каждое из этих свойств соот ветствует возможному событию для данного объекта. Например, свойство собы тия Открытие (ОпОреп) формы соответствует событию Открытие (Open), а свойст во события Получение фокуса (OnGotFocus) элемента управления формы соответ ствует событию Получение фокуса (GotFocus).

Полный список всех свойств событий объекта Access виден на вкладке События (Events) диалогового окна Свойства (Properties) этого объекта. По умолчанию свойства события не установлены, и Access реагирует на возникновение того или иного события неким стандартным поведением объекта. Например, при щелчке на кнопке на экране визуально отображается нажатие этой кнопки.

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

394 Занятие 13. Макросы Х Если событие нельзя отменить, сначала выполняются стандартные дей ствия, а затем процедура обработки событий.

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

Создание макроса, открывающего форму Вернемся к форме И з д а н и я, созданной на Занятии 10. С помощью мастера мы создали на этой форме кнопку, которая открывает форму КарточкаАвтора. Опе рация открытия формы при этом реализуется мастером с помощью процедуры VBA. Но предложенное мастером решение нас не совсем устраивает, так как форма К а р т о ч к а А в т о р а открывается не в режиме ввода новой записи, а в режиме редактирования данных. Исправим это, заменив процедуру VBA на макрос, ко торый будет открывать форму КарточкаАвтора в режиме ввода новой записи, 1. Откройте форму И з д а н и я в режиме конструктора.

2. Выделите элемент управления, кнопку Новый автор, и откройте окно Свойства (Properties).

3. Раскройте вкладку События (Events).

4. На этой вкладке заполнено только одно свойство события Ч Нажатие кнопки (On Click) (рис. 13.1). Как только пользователь нажимает кнопку Новый автор, происходит событие Нажатие кнопки (On Click) и начинает выполняться про цедура обработки этого события.

j Новый Авт op Макет j Данны? События,ipytne Потери фскуса, >............

Нз*ати кнопки............. [. ipcmf дури обработки событий] /Шейное на*этие ю-югки.....

вниа указателя.

Нажатие кчавнши Рис. 13.1. Свойства событии для элемента управления Кнопка Обратите внимание, сколько разных событий связано только с кнопкой. По мимо обычного нажатия, которое мы сейчас и будем использовать, в набор событий кнопки входят получение и потеря фокуса, двойной щелчок кноп кой мыши и даже просто перемещение указателя мыши над кнопкой и т. п.

Такое многообразие событий дает разработчику большие возможности по созданию удобного интерфейса пользователя.

Создание макроса, открываюшего форму 5. Очистите поле ввода для этого события и нажмите кнопку построителя справа.

6. Появится диалоговое окно Построитель (Choose Builder), в котором предлага ется выбрать один из трех объектов построителей: В ы р а ж е н и я (Expression Builder), Макросы (Macro Builder) или П р о г р а м м ы (Code Builder) (рис. 13.2).

П IIL-I рпнтеяь Рис. 13.2. Диалоговое окно выбора построителя В Microsoft Office Access 2003 окна построителя вы можете и не увидеть.

Вместо этого при нажатии кнопки построителя сразу откроется окно Редак тора процедур VBA. Дело в том, что теперь на вкладке Формы/Отчеты (Forms/ Reports) диалогового окна Параметры (Options) появился новый флажок Всегда использовать процедуры обработки событий (Always use event pro cedures). Если он установлен, то по умолчанию предполагается, что событие будет обрабатываться процедурой VBA. Это удобно в том случае, когда мак росы в приложении не используются. Если у вас сразу открылось окно с ре дактором процедур VBA, закройте его и выполните команду Сервис > Пара метры (Tools > Options), чтобы открыть диалоговое окно Параметры (Options). Раскройте вкладку Формы/Отчеты (Forms/Reports) и снимите этот флажок.

7. Выберите вариант Макросы (Macro Builder) и нажмите кнопку ОК. Откроется окно конструктора макросов (Macro Design) и диалоговое окно, в которое нужно ввести имя создаваемого макроса (рис. 13.3).

(.....,-;

Рис. 13.3. Сохранение макроса 8. Введите имя Новый автор и нажмите кнопку ОК.

Окно конструктора макросов построено аналогично конструктору таблиц.

то есть разделено по горизонтали на две части: панель описаний и панель ар гументов (рис. 13.4).

396 Занятие 13. Макросы От крытьфу нкцию ОтменитьСобытие ОтправитьОбъект Л эне льИнс тру м ен тс в Переименовать П ерено с Базы Д анн ь txSQL -' ПесочныеЧасы Иия Форма. РвЖ Х,-. !

. " ' : Рис. 13.4. Окно конструктора макросов Верхняя часть окна конструктора Ч панель описаний Ч состоит из несколь ких столбцов. По умолчанию на этой панели выводится два столбца: Макро команда (Action) и П р и м е ч а н и е (Comments). Здесь можно определить последо вательность макрокоманд, из которых состоит макрос. Каждая строка служит для определения одной макрокоманды. В столбце Макрокоманда (Action) нужно в списке выбрать требуемую макрокоманду. В столбце Примечание (Comments) можно ввести комментарий, описывающий выполняемое действие.

Когда иоле М а к р о к о м а н д а (Action) заполнено, в нижней части окна конструк тора макроса появляется панель аргументов для ввода значений аргументов соответствующей макрокоманд].!. Список полей на этой панели зависит от выбранной макрокоманды и может отсутствовать, у макрокоманды нет аргу ментов. Таким образом, при создании макросов не нужно запоминать список аргументов для каждой макрокоманды.

Введем в первую строку макрокоманду, открывающую форму.

9. Выберите в списке макрокоманду ОткрытьФорму (Open Form). В нижней части окна появляются поля ввода ее аргументов.

10. В первом поле выберите в списке имя формы КарточкаАвтора.

11. В поле Режим д а н н ы х (Data Mode) выберите в списке режим Добавление (Add) (рис. 13.5).

Поля Р е ж и м (View) и Р е ж и м о к н а ( W i n d o w Mode) должны иметь те значения, которые предложены по умолчанию. Значение Форма (Form) свойства Режим означает, что форма будет открыта в режиме формы. Значение Обычное Создание макроса, открывающего форму 39/ (Normal) свойства Режим окна означает, что режим вывода формы определя ется значением, заданным в окне свойств. Другие значения этого свойства:

Рис. 13.5. Аргументы макрокоманды ОткрытьФорму П Невидимое (Hidden) будет означать загрузку формы, но без отображения ее на экране. В дальнейшем ее можно сделать видимой, изменив значение свойства Видимость (Visible);

П Значок (Icon) Ч форма открывается в свернутом виде, ее можно развер нуть позже, щелкнув на кнопке Восстановить (Restore Up) в заголовке формы;

П Окно диалога (Dialog) Ч форма выводится в виде диалогового окна (всплы вающего и модального).

12. Закройте окно конструктора макросов, сохранив изменения. В окне свойств элемента управления Кнопка (Command Button) появится имя макроса (рис. 13.6).

If Кнопка: НоеыйАвтор Рис. 13.6. Добавление макроса для обработки события 13. Закройте окно свойств и переключитесь в режим формы, чтобы протестиро вать изменения, введенные в форму.

14. Нажмите кнопку НовыйАвтор. Откроется форма КарточкаАвтора в режиме ввода новой записи (рис. 13.7).

15. Введите новую запись и закройте форму.

16. Щелкните на ярлыке Макросы (Macros) в окне базы данных, и вы увидите что в списке макросов появился макрос Новый автор.

398 Занятие 1 3. Макросы Издательство Год издания Рис. 13.7. Форма КартонкаАвтора, открытая в режиме добавления записи Обновление данных с помощью макроса i, Второе усовершенствование, которое мы можем сделать в форме Издания с по мощью макроса, заключается в том, чтобы при добавлении нового автора авто матически обновлялся список авторов в подчиненной форме. Этот список за полняется при открытии формы Издания, и чтобы новый автор, которого только что ввели, появился в списке, нужно сделать повторный запрос к базе данных.

Если сейчас открыть список, в поле Фамилия (автора) вы не увидите только что добавленного автора. Чтобы он появился в списке, нужно установить фокус на подчиненную форму и выполнить команду Записи > Обновить (Records I Refresh). С помощью макроса можно сделать так, чтобы этот список обновлялся автоматически после того, как в базе данных появился новый автор.

Чтобы правильно написать макрос, необходимо сначала понять, с каким собы тием нужно связать этот макрос, то есть когда он должен выполняться. Очевид но, он должен выполняться, когда в форме КарточкаАвтора добавляется новая запись.

1. Откройте форму КарточкаАвтора в режиме конструктора и выведите окно свойств формы. Раскройте вкладку События (Events) (рис. 13.8).

На этой вкладке есть несколько событий, относящихся к записям, отобра жаемым в форме. Два из них связаны с вставкой новой записи: До в с т а в к и (Before Insert) и После вставки (After Insert). Событие До вставки обычно ис пользуется для выполнения проверок, а вот событие После вставки, которое происходит сразу после того, как в базовую таблицу добавлена новая запись, может быть использовано для выполнения любых действий, связанных с этим событием. Именно с этим событием мы и свяжем наш макрос.

Обновление данных с помощью макроса Форм а События | Другие Макет ] Данные" Текущая запись.

Послевставки Внесены чзменения Удаление До подтверждения Dd Открытий О гкдючечие.,,.,,., Получение фокусе,,.,,,.,-,..

Потеря Фокуса Рис. 13.8. События формы Обратите внимание на длинный список событий формы. Количество эти>;

событий растет с каждой новой версией Access. Это означает, что формы становятся все более гибкими, и разработчик может очень существенно влиять на поведение этого объекта. Чтобы понять, что означает каждое со бытие и как его можно использовать, установите курсор на нужную строку л нажмите клавишу F1. Откроется окно справки, в котором будет исчерпыва ющее описание этого события с примерами его использования Ч к сожале нию, только по-английски.

2. Нажмите кнопку построителя справа и выберите в окне Построитель (Choose Builder) строку Макросы (Macro Builder).

3. В диалоговом окне С о х р а н е н и е (Save As), запрашивающем название макрос;

), введите Обновление списка.

Теперь на экране окно конструктора макросов. Но макрос, который мы хо тим написать сейчас, отличается от предыдущего. Он должен выполняться, только когда форма К а р т о ч к а А в т о р а была открыта из формы Издания, ведь до бавлять записи об авторах можно и просто в форме К а р т о ч к а А в т о р а. Значит, прежде чем выполнять какую-либо макрокоманду, нужно проверить, откры та ли форма И з д а н и я. Таким образом, мы должны ввести условие выполне ния макрокоманд. Эти условия задаются в виде выражений в специальном столбце Условие (Condition), который по умолчанию скрыт.

4. Нажмите на панели инструментов кнопку Условия (Conditions) \Ъ$ц.

Столбец Условие (Condition) отображается в окне иериым (рис. 13.9).

400 Занятие 13. Макросы Рис. 13.9. Вставка столбца Условие Чтобы проверить, открыта (правильнее говорить Ч загружена) ли форма Из д а н и я, нужна специальная функция. К сожалению, встроенной функции для такой проверки в Access нет, поэтому ее нужно либо написать, либо импор тировать из другого приложения Access. Такая функция, IsLoaded(), есть в учебной базе данных Northwind.mdb, которая поставляется вместе с пакетом Microsoft Office 2003. В качестве аргумента в нее нужно передать имя фор мы, и она возвращает значение Истина (True), если эта форма загружена, и Ложь (False) в противном случае. Вы может легко импортировать эту функ цию из учебной базы данных N o r t h w i n d. m d b.

5. Нажмите на панели инструментов кнопку Окно базы данных (Database Window) и щелкните на ярлыке Модули (Modules).

6. Щелкните правой кнопкой мыши на свободном поле справа и выберите в контекстном меню команду И м п о р т (Import).

l.ra...:.Ч.. ^. :.

.. *,.

,.-!... > i -.,.,-.

.-,.,.Д, Рис. 13.10. Импорт модуля Обновление данных с помошью макроса 7. В диалоговом окне Импорт (Import) выберите в списке папку, в которой ле жит файл Борей. mdb (Northwind.mdb) (при стандартной установке это папка Program FiLes\Microsoft Office\Office\Samples). Выделите файл Борей. mdb и на жмите кнопку Импорт (Import). Появится диалоговое окно Импорт объектов (Import Objects) с раскрытой вкладкой Модули (Modules) (рис. 13.10).

8. Выделите в списке модуль Служебные функции (Utility Functions) и нажмите кнопку ОК. Модуль Служебные ф у н к ц и и появится в списке модулей в окне базы данных.

9. Переключитесь в окно конструктора макроса, щелкнув на нем или нажав со ответствующую кнопку панели задач в нижней части экрана ' При работе с базой данных часто бывает одновременно открыто несколько объектов. В момент открытия любого объекта (формы, отчета, таблицы, за проса) базы данных на Панели задач Windows появляется соответствующая кнопка его активизации. Это очень удобная возможность, которая обеспе чивает быстрый доступ к открытым объектам.

10. Введите в первую строку столбца Условие (Condition) выражение IsLoaded("H:s дания").

Теперь в списке нужно выбрать макрокоманду. На этот раз макрос будет со стоять из нескольких макрокоманд. Чтобы выполнить обновление списка в подчиненной форме формы Издания, нужно сначала сделать эту форму ак тивной с помошью макрокоманды ВыделитьОбъект (SelectObject).

11. Выберите в списке макрокоманду ВыделитьОбъект (SelectObject). На нижней панели нужно ввести три аргумента этой макрокоманды:

Тип объекта (Object Type) Ч выберите в списке значение Форма (Form);

И м я объекта (Object Name) Ч выберите в списке значение И з д а н и я ;

В окне базы д а н н ы х (In Database W i n d o w ) Ч оставьте значение по умолчанию Нет (No).

12. В столбце Примечание (Comments) введите строку Активизируем форму "Издания"..

Макрокоманда будет выполняться, только если выражение в столбце Усло вие (Condition) истинно. В противном случае будет выполняться следующая макрокоманда.

Следующая макрокоманда должна активизировать подчиненную форму, но так как подчиненная форма является элементом управления главной фор мы, для этого нужно использовать другую макрокоманду: КЭлементуУправле н и я (GoToControl). И эта команда тоже должна выполняться только при вы полнении указанного условия.

13. Введите во второй строке панели макрокоманд в столбце Условие (Condition) многоточие (...), чтобы не повторять условие.

14. В столбце М а к р о к о м а н д а (Action) выберите в списке имя макрокоманды КЭлементуУправления (GoToControl). У этой макрокоманды один аргумент имя элемента управления.

14 Зак. 402 Занятие 13. Макросы 15. Введите в поле ввода этого аргумента значение ИзданиеПодформа.

Последней командой будет макрокоманда ВыполнитьКоманду (RunCommand).

В качестве аргумента нужно указать имя команды, которую следует выпол нить.

16. Выберите в списке столбца М а к р о к о м а н д а (Action) макрокоманду Выполнить Команду (RunCommand), а в поле аргумента Команда (Command) Ч Refresh (Об новить). Не забудьте в столбце Условие (Condition) снова поставить многото чие (...).

Макрос готов (рис. 13.11). Все три макрокоманды будут выполняться только при выполнении условия, указанного в первой строке.

Щ Обновление списка : макрос Х/,.;

-. ft Активизируем.форму "Издания".

I sL ceded ("Из дания") Вы де лит ь Об ье к т.КЭлементуУправления Активизируем элемент управления Подчиненная форма *... ВыполнитьКр манду ВбШрпняем команду Обновить Рис. 13.11, Макрос обновления данных 17. Закройте окно макроса. В поле свойства После вставки (After Insert) появится имя макроса Обновление списка.

18. Закройте окно свойств и форму КарточкаАвтора.

19. Протестируйте работу макроса. Сначала откройте форму Издания и введите новое издание. Затем нажмите кнопку Новый автор, чтобы открыть форму КарточкаАвтора. Введите данные о новом авторе. Закройте форму Карточка Автора и раскройте список авторов в форме И з д а н и я, Убедитесь, что фамилия введенного автора появилась и списке. На рис. 13.12 показан список с запи сью о новом авторе Ч Павле Муратове.

20. Закройте форму Издания и попробуйте открыть форму КарточкаАвтора в ре жиме формы и добавить в нее новую запись. Ни одна из макрокоманд мак роса не должна выполняться.

Отладка макросов и поиск ошибок Если в процессе выполнения макроса вы увидели сообщение об ошибке, нужно найти эту ошибку. Если макрос содержит несколько макрокоманд, может по Отладка макросов и поиск ошибок 40.' з1 И здания: форма Название: |образы Италии йаэд*:п:.-:

. |ИСКУССТБО 1999' ' Х' Издательство: ]панорама v} Иасто публикац^,;

моски i r,J Том;

-;

| Типийданил;

книга МбСТО хранения: |Большая конната Д'J :

о,'-Х(' ! Х- : Дата покупки! |.!?, ?пт Число страниц Это записки путешественника и глубокое наблюдение и размышление об истории траны, ее культуре, итальянской духовности.

tit,,-,;

И г Ориген -J ' Петрарка Франчес^ Платон Пушкин.Алексащц Пыляев Михаил Сведенборг Э мангль Соловьев -" Сергей ft Рис. 13.12. Обновление списка авторов требоваться его отладка, то есть поиск и исправление ошибок. Обычно для от ладки макроса его выполняют в пошаговом режиме.

Для включения этого режима нужно на панели инструментов Конструктор мак росов (Macro Design) нажать кнопку По шагам (Single Step) i^iil Тогда перед выполнением каждой макрокоманды будет появляться диалоговое окно Пошаговое исполнение макроса (Macro Single Step) (рис, 13.13).

Продолжить ХХ i,-Х id 'Х] MI-.',..

делить '.'i..-f-i Рис. 13.13. Диалоговое окно Пошаговое выполнение макроса 404 Занятие 13. Макросы В полях этого окна отображаются все данные, необходимые для отладки: имя макроса, название исполняемой макрокоманды, значения ее аргументов и условие ее выполнения (как само условие, так и значение этого условия).

Если условие в макрокоманде отсутствует, в поле У с л о в и е (Condition) будет на ходиться значение И с т и н а (True). Кнопки справа позволяют выполнить три действия:

Х Ш а г (Step) Ч исполнить текущую макрокоманду;

Х Прервать (Halt) Ч прервать выполнение макроса (например, если видно, что аргументы макрокоманды вычислены неправильно);

Х Продолжить (Continue) Ч продолжить выполнение макроса в обычном режи ме, то есть не по шагам.

Если в процессе выполнения макроса возникла ошибка, отображается диалого вое окно Ошибка выполнения макроса (Action Failed). Оно выглядит почти так же, как окно Пошаговое в ы п о л н е н и е макроса (Macro Single Step), но кнопки Шаг и Про должить в нем недоступны, доступна только кнопка Прервать. В полях окна ото бражается макрокоманда с ошибкой. Таким образом можно локализовать ошиб ку с точностью до макрокоманды.

ЗАДАНИЕ Откройте любой из двух созданных макросов в режиме конструктора и вклю чите пошаговый режим.-Затем откройте форму Издания и нажмите кнопку Новый автор.

Введите нового автора в форму Карточка автора и закройте ее. Наблюдайте по шагам, как выполняются макросы.

Поиск ошибок в макросах, как правило, не вызывает больших затруднений. Это связано с тем, что:

Х синтаксические ошибки в макросах идентифицируются при вводе, и система сигнализирует об обнаруженных ошибках, таких как неправильное условное выражение;

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

Х макросы, как правило, достаточно просты и не содержат длинных последо вательностей макрокоманд. Если создать коротенький макрос не получает ся, лучше написать процедуру на VBA, так как язык VBA предоставляет го раздо больше возможностей и имеет существенно более удобные средства отладки.

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

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

Итак, нужно создать форму, которая позволила бы выбрать читателя и издание, и все эти данные вместе с датой выдачи занести в таблицу Формуляры.

Все формы, которые мы строили до сих пор, отображали данные из таблиц базы данных. Форма ВзятьКнигу другого типа и предназначена, чтобы собрать необ ходимые данные, а затем при нажатии некоторой кнопки все эти данные занес ти в базу. Такие формы состоят из свободных элементов управления, и источ ник данных для них не задается. Создавать их нужно с помощью конструктора форм.

1. Закройте все открытые объекты, если они у вас остались, и раскройте спи сок форм в окне базы данных.

2. Щелкните на ярлыке Создание формы с помощью Конструктора (Create form in Desicn View), 3. Сместите вниз нижнюю границу формы, чтобы увеличить область данных до 5 см (по вертикальной линейке).

4. Отожмите на панели элементов кнопку Мастера (Wizards) Ч мастера нам по надобятся не сейчас.

При создании этой формы мы будем использовать панель элементов.

Создание поля со списком Первое поле должно позволить выбрать читателя. Воспользуемся элементом управления Поле со списком (Combo Box).

1. Щелкните на кнопке Поле со списком (Combo Box) на панели элементов. Под ведите указатель к верхней части формы и щелкните, когда он будет на рас стоянии 3,5 см от левого края (рис. 13.14). В области данных формы появит ся поле со списком.

2. Щелкните на связанной с полем надписи, В пределах надписи указатель превращается в текстовый курсор, который предназначен для вставки и уда ления текста. Выделите текст надписи и введите вместо него Читатель.

3. Выделите элемент управления Поле со списком (Combo Box) и откройте окно свойств. Раскройте вкладку Д а н н ы е (Data). По умолчанию значение свойств;

!

Тип источника строк (Row Source Type) равно Таблица или запрос (Table/Query).

Щелкните на кнопке построителя рядом со свойством Источник строк (Row Source). Появится окно конструктора запросов.

406 Занятие 1 3. Макросы Ш Форма! : Форма 3 Х i Х 4 Х I Х В Х I Х Ё Х ' Х 7 ' i Х 3 Х I Х Э Х I ' 10 Х i Х И Х I Х 12 ' I > Рис. 13.14. Свободный элементы управления формы 4. Выберите в диалоговом окне Д о б а в л е н и е таблицы (Show Table) таблицу Чита тели.

5. Выберите в бланке запроса поле КодЧитателя. Второе поле сделайте вычис ляемым, введя выражение:

ФИО: [Фамилия] & ' ' & [Имя] & ' ' & [Отчество].

6. Установите порядок сортировки по этому полю По возрастанию (Ascending) и закройте запрос. Инструкция SQL, соответствующая построенному запро су, появится в поле ввода свойства Источник строк (Row Source).

7. Установите значение Да свойства Ограничиться с п и с к о м (Limit to List).

8. Раскройте вкладку Все (АИ) и установите на ней свойства в соответствии с табл. 13.2.

Таблица 13.2. Установка свойств поля со списком Читатель Значение Название свойства Читатель Имя (Name) Число столбцов (Column Count) Ширина столбцов (Column Width) Присоединенный столбец (Bound Column) 1 (по умолчанию) Создание элемента управления Поле 1. Щелкните на кнопке Поле (Text Box) па панели элементов. Установите указа тель мыши чуть левее и ниже левого края элемента управления Читатель и щелкните левой кнопкой. Появится новый элемент управления Поле (Text Box).

Использование макросов в форме ВчятьКнигу 40> 2. Выделите надпись этого поля и измените ее свойство П о д п и с ь (Caption) на значение Автор.

3. На вкладке Все (AIL) введите ими поля Автор.

Копирование элементов управления 1. Выделите элемент управления Автор.

2. Нажмите на панели инструментов кнопку Копировать (Copy) j-^ij.

3. Нажмите на панели инструментов кнопку Вставить (Paste) Ж]. Ниже элемен та управления Автор появится точно такой же элемент.

4. Задайте надпись к этому полю Издание и имя поля И з д а н и е.

5. Аналогично создайте еще одну копию элемента управления Поле (Text Box) ниже. Назовите его ДатаВозврата (надпись к нему Дата возврата).

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

Вместо копирования можно создавать новые элементы управления с помо щью панели элементов Ч так мы создали первый элемент. Но при копиро вании все элементы выстраиваются точно друг под другом Ч результат по лучается быстрее.

6. Поскольку это поле даты, введите для него маску ввода (вызовите построи тель и выберите Краткий формат даты (Short Date)).

7. Определим также значение по умолчанию для этого поля =DateAdd("y";

15;

DateQ). Книги выдаются на определенный срок. Функция D a t a A d d ( ) позво ляет вычислить нужную дату. В данном случае она вернет дату, которая бу дет на 15 дней позже текущей, 8. Еще ниже создайте текстовое поле Примечание.

Не забывайте везде задавать имена элементов управления, так как поздней Ч они будут использоваться в макросах. В противном случае придется рабо I ^Ч/ тать с теми именами, которые присваиваются по умолчанию.

9. Отформатируйте поля в соответствии с рис. 13.14.

Как спрятать элементы управления 1. Поместите рядом с надписью П р и м е ч а н и е еще одно поле: КодИздания.

Это поле не должно отображаться на форме, по оно должно заполняться, чтобы можно было сформировать запись в таблице Ф о р м у л я р ы. Поэтому нужно сделать его невидимым.

408 Занятие 13. Макросы 2. Выделите поле КодИздания и установите для него значение свойства Вывод на экран (Visible) равным Нет (No).

3. Сохраните форму, назвав ее ВзятьКнигу.

Позже мы добавим в эту форму необходимые кнопки, но сначала создадим еще одну форму.

Создание базового запроса для формы НевыданныеКниги Выбор читателя в форме ВзятьКнигу можно сделать с помощью раскрывающего ся списка, а чтобы выбрать книгу, необходимо отобразить список книг, которые не выданы на руки. Чтобы получит]) такой список, нужно создать запрос. Этот запрос довольно сложный, так как нужно, во-первых, получить строку, в кото рой было бы не только название книги, но и автор. Во-вторых, если у книги не сколько авторов, то в результирующем запросе должна быть только одна стро ка, а не несколько. В-третьих, в результирующее множество запроса должны попадать только те книги, которые не выданы читателям, а это делается на основе данных таблицы Формуляры.

1. Раскройте список запросов в окне базы данных и щелкните на ярлыке Созда ние запроса с помощью конструктора (Create query in Design View).

2. В диалоговом окне Добавление таблицы (Show Table) выберите 4 таблицы: Ав торы, АвторИздание, Издания и Формуляры.

3. Для правильного выполнения запроса между всеми таблицами должны быть установлены внешние связи. Связи между таблицами Авторы, АвторИздание и Издания мы уже создавали. Между таблицами Издания и Формуляры тоже долж но быть внешнее соединение, поскольку нужно выбрать все записи таблицы Издания и только те записи таблицы Формуляры, в которых связанные поля совпадают (рис. 13.15).

9 Г |КОДИЗД *ля J -i ^ ^ ЛКодЧлтэтеля >КодАвгора КпдИздлмя ^J Х ДэтаПс пучеля ;

;

';

;

',. имя :/ Х амипия I | ДатаВо жрата ;

| Х;

''!

КодИедамчя -v ГодРождения звратаФакт | "од И здания V-J ' ГодСмерти Wj ание i Г Mi" " Го &V здания нГодИэданпл Ко л Автора ДатаВозера1"*!1 Ч Название ДатаПопучени!

издания Авторы Издания Издания Х Формуляры Форнуплры групшровка Fi-st Группировка руппировкс Last Last по возрастанию го возрастании:

П П 0 13 Is Null Is Null \ Хл NotlsNull NotlsNull wi :

., -M i 4J -, ^ Рис. 13,15. Базовый запрос для формы НевыданныеКниги Использование макросов в форме ВзятьКнигу 4. Перенесите к бланк запроса следующие поля: КодАвтора из таблицы Авторы;

КодИздания, Название и ГодИздания из таблицы Издания;

ДатаПолучения и Датз ВозвратаФакт из таблицы Формуляры.

5. Установите вид сортировки по возрастанию в поле ДатаПолучения, тогда все книги в запросе будут отсортированы по дате их выдачи читателям, причем одна книга может встречаться несколько раз (столько, сколько читателей чи тало эту книгу). В начале будут включены книги, которые еще никогда не выдавались (у них поле ДатаПолучения будет пустым).

6. Теперь нужно сгруппировать эти записи так, чтобы одна книга встречалась только один раз. Щелкните на напели инструментов на кнопке Группировка (Totals) Щ.

7. Появляется строка Групповая о п е р а ц и я (Total), по умолчанию содержащая в каждой ячейке значение Группировка (Group By).

8. Для столбца КодАвтора измените это значение на First. Это статистическая функция по подмножеству записей, которая возвращает значение поля из первой строки группы (мы здесь выделяем только первого автора).

9. Для столбцов ДатаПолучения и ДатаВозвратаФакт замените значение Группи ровка (Group By) па Last Ч статистическую функцию, которая, соответствен но, возвращает значение поля из последней записи группы.

10. Теперь определим критерии отбора. Отобрать нужно все книги, которые ни когда не выдавались читателям (у них и поле Д а т а П о л у ч е н и я, и ноле ДатаВоз вратаФакт пусты), и книги, которые уже возвращены (у них оба ноля должны быть не пусты, то есть после того, как книга последний раз выдавалась, се уже вернули). Введите в первую строку У с л о в и е отбора (Criteria) значение 1's Null для обоих столбцов, а во второй строке Ч значения Not is Null (см.

рис. 13.15).

11. Кроме того, добавим вычисляемый столбец, который будет отображать сим вольную строку с именами авторов (для упрощения возьмем Имя и Ф а м и л и ю первого автора и, если у книги несколько авторов (в запросе должно быть несколько строк), добавляем слова <и др.).

12. Выделите столбец Н а з в а н и е и нажмите клавишу Insert. Перед выделенным столбцом будет вставлен новый пустой столбец.

13. Введите в первой строке выражение:

Автор: ШЧСоипЩФамилмя] & ' ' & [Имя])>1;

Г1г5"Ц[Фамилия] & ' ' & [Имя]} & ' и д р. ' ;

F 1 r s t ( [ Ф а м и л и я ] & ' ' & [Имя])) 14. В строке Г р у п п о в а я операция ( G r o u p By) выберите в списке значение Выраже ние (Expression).

15. Установите сортировку по полям Автор и Н а з в а н и е.

16. Выполните запрос, чтобы убедиться, что он функционирует правильно, сни мите флажки вывода на экран полей КодАвтора, ДатаПолучения и ДатаВыдач!' Факт и закройте запрос, назвав его НевыданныеКниги.

410 Занятие 13. Макросы ЗАДАНИЕ Создайте с помощью мастера ленточную форму НевыданныеКниги на базе соответствующего запроса. В форме должны отображаться поля Автор, Название и Год Издания. Поле КодИздания должно быть невидимым. В примере оно сделано послед ним. Чтобы форма не расширялась автоматически, установите свойство Автоматический размер (AutoResize) равным значению Нет (рис. 13.16).

У ' 'Х' ^ Н ^ Ш НевыданныеКниги Х ^ ''- ' " -,,, *i /fic&ji Х. ;

Х Haiti зда?. ' ". Год Ч - ;

:

.. '' ^s^ssnw :

> [Р~ ^[счастливые родители "Т99э|*| ^Оправдание" вечности 1994J ;

[Борхес Хорхе Луис [Боэций ^Утешение философией" и другие трактаты | 199о|^ !Булга"|сов"михаил ;

[Белая гвардия, Мастери Маргарита 19881^ ;

j :

Шей с Франциск '[[нравственные основы жизни 1 994[. :

1Еремеева Ольга и др. |Мы;

кдем ребенка 1999k [Лихачев Дмитрий Црэздумья о России У 19991'^,::

щ к '-""Х: |' ! 1 -J;

Рис 13.16. Форма НевыданныеКниги Размещение кнопок на формах Разместим на наших формах кнопки, при нажатии которых будут выполняться нужные действия.

1. Откройте форму ВзятьКнигу в режиме конструктора.

На ней целесообразно создать три кнопки. Первую кнопку удобно располо жить справа от полей Автор и Издание. Она будет использоваться для выбора выдаваемой книги, и при ее нажатии должна открываться форма Невыдан н ы е К н и г и. Еще одна кнопка требуется, чтобы выполнить операцию сохране ния всех собранных данных в т а б л и ц е Ф о р м у л я р. И, наконец, последняя кнопка нужна, чтобы закрыть форму.

Некоторые кнопки будем создавать с помощью мастера, а в других случаях мастер нам не понадобится. Кнопку, которая будет открывать форму Невы д а и н ы е К н и г и, мы создадим с помощью мастера, поэтому проверьте, чтобы кнопка Мастера (Control Wizards) на панели элементов была нажата.

2. Щелкните на панели элементов на кнопке К н о п к а (Command Button) _4.

3. Установите курсор в области д а н н ы х формы правее элементов Автор и Изда ние (рис. 13.17) и щелкните. Появится элемент управления К н о п к а и запус тится мастер.

4. На первом шаге выберите категорию Действия с формами (Form Operation) и действие Открыть форму (Open Form).

5. На втором шаге укажите имя формы Н е в ы д а н н ы е К н и г и, Использование макросов в форме ВзятьКнигу 6. На третьем шаге установите флажок Открыть форму и показать все записи (Open the form and show all the records).

7. На четвертом шаге выберите переключатель Текст (Text) и введите надпись на кнопке: Выбрать.

8. На пятом шаге введите имя объекта управления Кнопка: Выбрать.

Ш ВзсттьКнигу : Форма Рис. 13.17. Добавление кнопок на форму ВзятьКнигу Э. Создадим кнопку, которая будет закрывать форму. Снова щелкните на эле менте управления Кнопка (Command Button) на панели элементов и щелкните в нижней части формы под всеми остальными полями. В первом диалоговом окне мастера выберите действие Закрыть форму (Close Form) (рис. 13.18).

Переходы по записям Изменить фильтр формы Обработка записей Обновить данные формы Открыть страницу Работа с отчетом Открыть форму Приложение Печать текущей формы Разное Печать формы Применить фильтр бор-ы Рис. 13.18. Создание кнопки, закрывающей форму 41 2 Занятие 1 3. Макросы 10. Введите текст на кнопке и имя кнопки Закрыть.

Если вы посмотрите на свойство события Нажатие кнопки (On Click) кнопки Закрыть, то увидите, что это событие также обрабатывается с помощью про цедуры VBA. Но третья кнопка, которая нам нужна, будет запускать макрос, сохраняющий данные в таблице Ф о р м у л я р ы. Для ее создания мы не будем ис пользовать мастера.

11. Щелкните на кнопке Мастера (Control Wizards) на панели элементов, чтобы от ключить запуск мастера.

12. Щелкните на кнопке Кнопка (Command Button) и щелкните на поле формы ле вее кнопки Закрыть.

13. На форме появится кнопка, а указатель превратится в текстовый курсор.

Выделите им надпись на кнопке и введите новую надпись С о х р а н и т ь.

14. Установите свойство И м я (Name) для новой кнопки: Сохранить.

15. С помощью панели форматирования измените размер шрифта на всех трех кнопках: 10 пт. Установите нужную высоту и ширину кнопки.

16. Раскройте вкладку Макет (Format) диалогового окна свойств формы и уста новите свойства формы в соответствии с табл. 13.2.

Таблица 13.2. Свойства формы ВзятьКнигу Свойство Значение Взять книгу Подпись (Caption) ^_ Режим формы (Allow Form View) Да Режим таблицы (AU.ow_ Data sheet View) Нет Режим сводной таблицы (Allow PivotTable View) Нет Режим сводной диаграммы (Allow PivotChartView) Нет Область выделения (Record Selectors) Нет Кнопки перехода (Navigation Buttons) Нет Тип границы (Border Style) Окно диалога (Dialog) Кнопка оконного меню (Control Box) Нет Кнопки размеров окна (Min Max Buttons) Нет Кнопка закрытия (Close Button) Нет В этой форме мы выбрали тип границы Окно диалога (Dialog). Такой тип гра ницы не позволяет пользователю менять размеры окна, в том числе свора чивать и разворачивать (соответствующие кнопки не отображаются).

17. Закройте форму, сохранив изменения макета.

Добавим кнопки на форму Н е в ы д а н н ы е К н и г и. Одна кнопка также будет закры вать форму, а вторая будет использоваться для переноса данных из выбранной записи в форму ВзятьКнигу.

Использование макросов в форме ВзятьКнигу 41 1. Откройте форму НевыданныеКниги в режиме конструктора.

2. В ленточной форме кнопки нужно добавлять либо в области заголовка, либо в области примечания.

3. Перетащите границу области П р и м е ч а н и я формы (Form Footer) (первоначально ее высота равна 0) вниз приблизительно на 1 см.

4. Создайте кнопку Закрыть так, как это сделали в форме ВзятьКнигу (кнопка Мастера (Control Wizards) на панели элементов должка быть нажата), 5. Создайте кнопку Выбрать (кнопка мастера должна быть отжата).

Окончательный вид формы приведен на рис. 13.19.

Щ НевыданныеКннги : Форма *3аг..jpPlW - --. = - Х ;

.

Hpj. Ш г.:|ЫУадв(* :

''Х", "Г ;

дотяни. \ *' Нi |Автор рззвакие ЦГодИздг! Ко :

" -. -:- Х" :- * :, :

-' *Прлчечзние фаркы Х :. -;

: ;

- Х-ХХ Ш/ 'Х -" \ it, M..f..llb IL 1j Ч.K.4JTL 1!

. [;

. ;

> j -'Jh^blllj j| :

Рис. 13.19. Добавление кнопок на форму НевыданныеКниги Создание макроса ВыбратьКнигу 1. Щелкните на ярлыке Макросы (Macros) в окне базы данных и нажмите КНОЕ ку Создать (New) на панели инструментов этого окна.

Откроется окно конструктора макросов. Чтобы перенести значения полей текущей записи в форме Н е в ы д а н н ы е К н и г и, будем использовать макрокоман ду ЗадатьЗначение (Set Value).

аблицы <форма> <Список попей > S3 Запросы Автор^Надпись Э Forms Н а звание_Н а дпис ь I- ] Загруженные формь ГодИздания Надпись, - i вй Все формы BeforeUpdate BorderColo ИЗ Reports Borderline Style т Si Функции гч-З BorderStyle BorderWdth Рис. 13.20. Использование построителя для выбора элемента управления 414 Занятие 13. Макросы 2. Выберите тз списке макрокоманду ЗадатьЗначение (Set Value).

В нижней части окна появится список аргументов. Этих аргументов два;

эле мент управления, значение которого мы хотим установить, и само значение.

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

3. Щелкните на кнопке построителя справа от поля Элемент (Item).

4. В дереве объектов в окне построителя выберите нужную форму: Forms\Bce формы\ВзятьКнигу. В списке элементен управления выберите элемент Автор (рис. 13.20) и дважды щелкните на нем или нажмите кнопку Вставить (Insert).

5. В верхнем поле появится ссылка на этот элемент управления. Закройте окно построителя.

6. Аналогично определите значение второго аргумента. Выберите в дереве объ ект Рогт5\3агруженные ф о р м ы \ Н е в ы д а н н ы е К н и г и (рис. 13.21) и в нем элемент управления Автор.

[Формы]! [НевыданныеКниги]! [Автор] ffi Таблицы <Фсрма> <Списск попей > AfterUpdate (И Запросы Автор_Надпись AllowAutoCorrect И Forms Название Н а д лись Auto Tab IЧ ] Загруженные формы Год Из дамп я_Н а д п ись BackColor ышшЯН BackStyle BeForeUpdate Название IЧ ЩЕсе формы Го дИ здания BorderColor ЕЙ Reports КодИздамия BorderLineStyle СИ Функции Выбрать Borders С у le Закрыть BorderWidth Рис. 13.21. Выбор элемента управления загруженной формы 7. Точно так же добавьте в макрос еще две макрокоманды ЗадатьЗначение (Set Value): одна должна установить значение элемента Н а з в а н и е, а другая Ч Код Издания.

8. Последняя макрокоманда должна закрыть форму Н е в ы д а н н ы е К н и г и. Выбери те в списке макрокоманду З а к р ы т ь (Close) и установите аргументы в соответ ствии с табл. 13.3.

Таблица 13.3. Значения аргументов макрокоманды Закрыть (Close) Значение Тип объекта (Object Type) Форма (Form) Имя объекта (Object j^ame) НевыданныеКниги Сохранение (Save) Нет (No) Использование макросов в форме ВзятьКнигу 41 Аргумент Сохранение (Save) позволяет определить, будет ли система при за крытии формы отображать диалоговое окно для подтверждения сохранения измененных данных. Поскольку данные в форме не могут быть изменены (результирующее множество запроса является не обновляемым), этому ар гументу нужно присвоить значение Нет. Готовый макрос представлен на рис. 13.22.

W- ВыоратьКнигч: макрос д.! Перенос значений попей из формы НевыданньвКниги | форму ВзятьКнигу в ЗадэтьЗначение ЗадатьЗнзчение Закрыть....Ё.З.акрытие формы *. [Фор11Ь|]![ВэятьКнигу]'[АБтс [Фс1р11ы]![НевыданныеКиип' Н, Рис. 13.22. Макрос ВыбратьКнигу 9. Закройте макрос, сохранив его и определив его имя: ВыбратьКнигу.

Осталось подключить этот макрос к кнопке в форме.

10. Активизируйте форму НевыданныеКниги.

11. Выделите кнопку Выбрать и раскройте вкладку События (Events) диалогового окна Свойства (Properties).

12. Щелкните на поле значения свойства Нажатие кнопки (Click) и раскройте спи сок. В списке содержится перечень всех макросов и один элемент [Процедура обработки события] ([Event Procedure]).

13. Выберите в списке элемент ВыбратьКнигу. Теперь при нажатии кнопки Вы брать будет выполняться созданный нами макрос.

14. Закройте форму НевыданныеКниги.

Создание макроса ВзятьКнигу Теперь нужно создать макрос, который на основании данных в форме ВзятьКни гу создаст запись в таблице Формуляры. Для этого используем макрокоманду, которая выполнит запрос на добавление записи. Но перед этим создадим этот запрос.

41 6 Занятие 13. Макросы 1. Щелкните сначала на ярлыке Запросы (Queries) в окне базы данных и затем на ярлыке С о з д а н и е запроса с п о м о щ ь ю конструктора (Create Query by Design View). В диалоговом окне Добавление таблицы (Show Table) не добавляйте ни какую таблицу, просто закройте его. По умолчанию будет создан запрос на выборку.

2. Щелкните на панели инструментов на стрелке кнопки Тип запроса (Query 3. Затем выберите в списке элемент Д о б а в л е н и е (Append). Появится диалоговое окно Добавление (Append).

4. В поле и м я т а б л и ц ы (Table N a m e ) выберите в списке таблицу Ф о р м у л я р ы (рис. 13.23) и нажмите кнопку ОК.

Рис. 13.23. Диалоговое окно Добавление В бланке запроса появляется строка Д о б а в л е н и е ( A p p e n d To). В этой стро ке нужно указать поля таблицы Ф о р м у л я р ы, которым будут присвоены значения.

5. Выберите в списке по очереди все поля таблицы Формуляры, кроме поля Дата ВозвратаФакт 1 (рис. 13.24).

Значения, которые должны быть присвоены выбранным полям, нужно ука зать в строке Поле (Field). Большинство этих значений являются значениями элементов управления формы В з я т ь К н и г у. Поэтому в эту строку должны быть вставлены выражения, являющиеся ссылками на соответствующий элемент управления формы В з я т ь К н и г у, Создать эти выражения можно опять-таки с помощью построителя.

6. Щелкните в строке Поле (Field) первого столбца и на панели инструментов нажмите кнопку Построить ( B u i l d ) jgfp. Появится окно построителя выраже ний.

7. Выберите в дереве объектов форму ВзятьКнигу и вставьте значение элемента Читатель. Закройте окно построителя. В строке Поле (Field) появится выраже ние Выражение!: Рогт5![ВзятьКнигу]![Читатель].

Выражение! Ч это надпись поля, которое создается по умолчанию. Посколь ку это поле отображаться нигде не будет, оставьте значение по умолчанию.

Это поле пока заполняться не должно.

Использование макросов в форме ВзятьКнигу 41 Аналогично заполните строку Поле (Field) для столбцов КодИздания, ДатаВоз врата, Примечание. И только для столбца ДатаПолучения нужно ввести выра жение Date(). Тогда этому полю будет присвоено значение, равное текущей дате. Запрос должен выглядеть так, как представлено на рис. 13.24.

igs ВзятьКннгу : запрос на добавление I -,,1.3 IrJ Выражение!: F< Вьражение2;

ft Выражение 3: Di Выражение-! : Fc Выражение5: Fc ' КодИэдания КодЧитатепя ДатаПолучения ДзтаВозврата Примечание,1.1'.:

*н Х -Х& Рис. 13.24. Создание запроса на добавление 9. Закройте запрос, сохранив его под именем ВзятьКнигу.

Создадим макрос, который будет выполнять наш запрос добавления. Макрос будет состоять из нескольких макрокоманд и включать ряд условий, так как мы должны проверить, заполнены ли поля Читатель, Издание (а значит, и нужное нам для вставки в таблицу Формуляры поле КодИздания), ДатаВозврата. Кроме того, мы не должны допустить, чтобы дата возврата оказалась больше текущей даты. Во всех случаях, когда условие нарушено, мы должны выдать пользовате лю сообщение и прекратить выполнение макроса. И только если все проверки прошли успешно, можно выполнять запрос добавления записи в таблицу Фор муляры.

1. Щелкните на ярлыке Макросы (Macros) в окне базы данных и нажмите кноп ку Создать (New) па панели инструментов этого окна, 2. Нажмите кнопку Условия (Conditions) на панели инструментов, чтобы доба вить в окно конструктора столбец Условия (Conditions).

3. Введите в первой строке столбца Условия (Conditions) выражение [Рогт$]![Взять Книгу]![Читатель] Is Null 1. В столбце М а к р о к о м а н д а (Action) выберите элемент Сообщение (MsgBox) и заполните аргументы этой макрокоманды (рис. 13.25).

Аргумент Веер ( С и г н а л ) определяет, будет ли вывод сообщения сопровож даться звуковым сигналом. Аргумент Тип (Туре) определяет вид диалогового окна сообщения. Аргумент Заголовок (Title) позволяет определить текст, ко торый будет выводиться в заголовке окна сообщения.

Следующей должна быть макрокоманда ОстановитьМакрос (StopMacro).

4. Введите в столбце Условия (Conditions) на следующей строке многоточие (..) и выберите макрокоманду ОстановитьМакрос (StopMacro). У этой макрокоманды 1 т.

Или создайте его с помощь) построителя.

41 о Занятие 1 3. Макросы нет аргументов. После ее выполнения все остальные макрокоманды макроса не выполняются.

[Формы]|Г,ВзятьКн Сообщение '. ОстановитьMaкрое Рис. 13.25. Аргументы макрокоманды Сообщение 5. Аналогично создайте две макрокоманды для проверки поля Издание и четы ре макрокоманды для проверки поля ДатаВозврата (рис. 13.26).

Очевидно, некоторые условия, например, проверку значения в поле Дата Возврата, можно было ввести в форму, установив соответствующие значе ния свойств Условие на значение (Validation Rule) и Сообщение об ошибке (Validation Text). Тогда макрос был бы короче.

[Формы]![езятьКшгу]![Читатель]15М... -Сообщение.. t Не выбран Читатель ч. Х Остановить Макрос !

[Формы]Г[ВзятьКнигу]|(Издание]15Ш1. ^Сообщение. ;

Неi выбрана издание...

Ос таноЕитьМакрос ;

[Формы1![ВзятьКнигу]|[ДатаВоэвр_ата] Is Null Сообщение Не заполнена дата возврата.-... Остано&итьМакрос ^[Формь|]![ВзятьКнигу]![/1|таВозврзта]<-1ЭаЬеО Сообщение Дата.возврата.должна.бьлъ больше текущий ОстаноеитьМакрос шага возврата должна быть 'Щ " " " ''ДИ. Х Х !

Х" Предупреждающее !

Формуляр Рис. 13.26. Проверка значении в полях формы ВзятьКнигу Как превратить форму ВзятьКнигу в форму СдатьКнигу... Последней командой, которая будет выполняться, только когда ни одно из указанных условий не будет иметь значение Истина (True), является макро команда ОткрытьЗапрос (OpenQuery).

6. Создайте еще одну строку в макросе. Столбец У с л о в и е ( C o n d i t i o n ) должен остаться пустым. В столбце Макрокоманда (Action) выберите макрокоманду ОткрытьЗапрос (OpenQuery). Б аргументе Имя запроса (Query Name) выберите за прос ВзятьКнигу (значения остальных аргументов можно оставить заданными по умолчанию).

7. Закройте запрос, сохранив его под именем ВзлтьКнигу.

8. Откройте форму ВзятьКнигу и свяжите макрос с кнопкой Сохранить.

9. Протестируйте работу формы, выполнив несколько раз операцию ВЫДЕЛИ книги с разными значениями полей.

Как превратить форму ВзятьКнигу в форму СдатьКнигу, а форму НевыданныеКниги в форму ВыданныеКниги А теперь мы с помощью макросов заставим по-разному функционировать фор мы ВзятьКнигу и Н е в ы д а н н ы е К н и г и. Когда нужно оформить сдачу книги чита~е лем, должны выполняться операции похожие на те, что выполняются при выда че книги. Можно попробовать использовать для этой операции форму Взять Книгу, но при нажатии кнопки Сохранить нужно найти соответствующую запись в таблице Формуляры и заполнить поле ДатаВозвратаФакт. Когда выбирается кни га, которую читатель сдает, можно открыть ту же форму Н е в ы д а н н ы е К н и г и, толь ко теперь она должна отображать книги, находящиеся на руках у читателей.

Создание новых запросов Чтобы все это так и работало, сначала создадим еще два запроса:

Х запрос В ы д а н н ы е К н и г и, который будет возвращать список книг, выданных выбранному читателю;

Х запрос СдатьКнигу, который будет обновлять запись в таблице Формуляры.

Первый запрос несложно создать, слегка изменив запрос Н е в ы д а н н ы е К н и г и.

1. Откройте запрос НевыданныеКниги в режиме конструктора.

Необходимо изменить условия отбора записей, заданные в столбцах ДатаПо л у ч е н и я и ДатаВозвратаФакт. Теперь нам нужно отобрать только записи с не заполненным нолем Д а т а В о з в р а т а Ф а к т и заполненным полем ДатаПолученля.

Кроме того, нужно отобрать только книги, выданные тому читателю, кото рый уже выбран в форме СдатьКнигу.

2. Добавьте еще один столбец для задания условия отбора Ч КодЧитателя.

420 Занятие I 3. Макросы 3. Замените операцию в строке Групповая операция (Total) для столбцов ДатаПо лучения, Дата В оз врата Факт, КодЧитателя на Условие (Condition).

4. В первой строке Условия отбора (Criteria) столбца ДатаВозвратаФакт введите выражение Is Null. В столбце КодЧитателя задайте в качестве критерия отбора выражение [Роггп5]![ВзятьКнигу]![Читатель]. Условия отбора во второй строке удалите.

5. Сохраните запрос под именем В ы д а и н ы е К н и г и командой Файл > Сохранить как (File > Save As).

Создадим запрос на обновление СдатьКнигу.

1. Щелкните на ярлыке Создание запроса с помощью конструктора (Create query by Design view) и добавьте в запрос таблицу Ф о р м у л я р ы.

2. Щелкните на панели инструментов на стрелке кнопки Т и п з а п р о с а (Query Туре) и выберите команду О б н о в л е н и е (Update). Запрос на выборку превра тится в запрос на обновление.

В строке Поле (Field) бланка запроса нужно указать поля, которые следует обновить, а в строке О б н о в л е н и е (Update To) Ч новые значения этих полей.

В нашем случае новые значения полей находятся в форме ВзятьКнигу, поэто му в строке О б н о в л е н и е (Update To) будут ссылки на элементы управления этой таблицы.

3. Перенесите в бланк запроса поля ДатаВозвратаФакт и П р и м е ч а н и е (рис. 13.27).

4. В строку О б н о в л е н и е поля ДатаВозвратаФакт введите выражение [Forms]!

[ВзятьКнигу]![ДатаВозврата], а для поля П р и м е ч а н и е Ч выражение [Forms]!

[ВзятьКнигу]! [Примечание].

Теперь нужно ввести условия выборки именно той записи таблицы Формуля ры, которая должна обновляться.

5. Перенесите в бланк запроса ключевые поля таблицы: КодЧитателя и КодИздания.

6. В строке Условия отбора (Criteria) поля КодЧитателя введите выражение [Forms]!

[ВзятьКнигу]![Читатель], а для поля К о д И з д а н и я Ч выражение [Forms]![B3flTb Книгу]![КодИздания].

jijj& СвзтьКнигу : запрдс на обновление ЦатаВозератаФакт КодЧитателя КодИздания ! Х.,-.. оозмуляры Формуляры !

r т s ! Ез я т ьКн гу Г For ms I ВзятьКнигу ! Д ат аВо :

[Рогтв]![ВзятьКмигу]1[Чита [Ропгй]![ВэятьКнигу]![КодИзд.

Рис. 13.27. Запрос на обновление СдатьКнигу Как превратить форму ВзятьКнигу в форму СдатьКнигу... 7. Закройте запрос, сохранив его под именем СдатьКнигу.

Запросы готовы, и мы приступим к созданию новых кнопок и макросов. Изме нениям подвергнется форма ВзятьКнигу Ч в нее добавятся две кнопки. Форму Н е в ы д а н н ы е К н и г и трогать не будем.

1. Откройте форму ВзятьКнигу в режиме конструктора.

2. Создайте без помощи мастера две кнопки и для начала разместите их в ниж ней части формы. Они должны иметь надписи Выбрать и Сохранить, а их име на обязательно должны отличаться от имен другой пары кнопок с теми же надписями. Назовите их, например ВыбратьВозврат и СохранитьВозврат.

Теперь нужно создать макросы, которые будут запускаться при нажатии этих кнопок. Оба макроса, как, впрочем, и уже существующий макрос ВзятьКнигу, от носятся к форме ВзятьКнигу. Возьмите за правило, что все макросы, относящие ся к одной форме, следует сохранять в одном объекте, благо конструктор мак росов это позволяет. Поэтому сейчас мы объединим три макроса в один.

Создание группы макросов 1. Откройте макрос В з я т ь К н и г у в режиме конструктора и на панели инструмен тов щелкните на кнопке Имена макросов (Macro Names) Появится новый столбец под названием И м я макроса (Macro Name). В этом столбце указываются только имена макросов.

2. Введите в первой строке имя уже написанного макроса ВзятьКнигу (рис. 13.28).

Ззять книгу.. [Фор м ы]![ Бз я т ьКм.игу]1 [Читатель] Is Null. Сообщение Х Не выбран Читатель Хi... ОстановитьМлкрос !

"[Шориы]'[ВзятьКнигу]![Иэданне]151Чи1 Сообщение :Не выбрано издание :Х........ОстановитьМакрос..]..

[ФормыИ^атьКнигуМДатаВозврэта^МиИ Сообщение : Не заполнена дата возврата ОстанрвиТьМакрос.. [Формы]'[БзятьКниг|/]![ДатаВозврата]<=Сле() Сообщение Дата возврата допжкэ быть больше текущей ;

;

. | -Л. ОстаноеитьМакрос Рис. 13.28. Создание группы макросов Следующий макрос мы начнем создавать, пропустив одну строку от послед ней макрокоманды предыдущего макроса. Этот макрос будет выполняться при нажатии кнопки ВыбратьВозврат. Он должен сначала проверять, заполнено 422 Занятие 13. Макросы ли поле Читатель, и если заполнено, открывать форму Н е в ы д а н н ы е К н и г и и при этом изменять источник записей и заголовок этой формы.

3. Введите в столбец Имя макроса (Macro Name) имя нового макроса: ВыбратьКни гу. Первые две макрокоманды введите такие же, как в предыдущем макросе.

4. В третьей строке макроса в столбце Макрокоманда (Action) выберите макро команду ОткрытьФорму (OpenForrn).

5. Задайте аргументы этой макрокоманды (рис. 13.29).

.. - > :

- : '.Х-!.",' i.-...,.1 л.-iJ'M?

:-, Рис. 13.29. Аргументы макрокоманды ОткрытьФорму Все аргументы должны быть уже понятны, Макрокоманда ОткрытьФорму (Open Form) позволяет открыть форму в любом режиме: формы, таблицы, конструк тора и предварительного просмотра (для печати). Можно установить или не установить фильтр, указать режим работы с данными: добавление, изменение, только чтение, можно вообще открыть форму так, что она будет невидима, а потом специальной командой показать ее на экране.

Далее нужно изменить заголовок формы Н е в ы д а н н ы е К н и г и. Для этого мы снова будем использовать макрокоманду SetValue (ЗадатьЗначение), но теперь для того, чтобы определить значение свойства формы.

6. В следующей строке выберите и списке команду ЗадатьЗначение.

7. С помощью построителя ч поле ввода Элемент (Item) создайте выражение, которое ссылается па свойство Подпись (Caption) формы (рис. 13.30). В поле ввода Выражение (Expression) введите выражение "Выданные к н и г и ".

8. В третью строчку снова введите макрокоманду ЗадатьЗначение.

9. Аргумент Элемент должен иметь значение [Формы]![НевыданныеКниги].Record Source, а аргумент Expression имя нужного запроса " В ы д а н н ы е К н и г и ".

эдЗ) Кавычки в строковом выражении аргумента макрокоманды ЗадатьЗначение обязательны.

Названия свойств, как и имена элементов управления в выражениях, удоб нее выбирать в окне построителя выражений. В этом случае вы гарантиро ваны от ошибок при составлении таких выражений. Самый быстрый способ узнать значение свойства Ч справочная система Access.

Еще один макрос, который должен входить в данную группу, Ч это макрос СдатьКнигу, который очень похож на макрос ВзятьКнигу.

Поэтому далее предлагается проделать следующие операции.

Как превратить форму ВзнтьКнигу 8 форму СдатьКнигу... 'Формы] |[НевыданныеКниги],[Caption]|.1 И I | IN.-.IJ - СЗ К арт оч к а Дв то ра Пс j Before Query попей? BefareRender -СЗ Читатели Автор_Надпись BeforeScreenTip - СЭ Формуляры J Наз вание_Надпись BeforeUpdate - Q Дет еры Издание Го дМ з д аи ия_На дпи сь Border Style - СЗ Издания As т op Название - СЗ Из дани еП од форма CfoseButton ГодИздания ControlBox - С] ВзятьКнигу КодИздания Count Выбрать GjrrentSectionLert ) Закрыть CurrentSectionTop Рис. 13.30. Формирование ссылки на свойство формы 10. Выделите все строки, которые относятся к макросу ВзятьКнигу (рис. 13.31), и скопируйте выделенные строки в буфер обмена.

11. Выделите строку, в которой вы должны начать новый макрос, и вставьте данные из буфера обмена.

12. Измените имя макроса: СдатьКнигу.

13. Установите курсор в строку с макрокомандой ОткрытьЗапрос (Open-Query) и измените имя запроса: СдатьКнигу.

Х Х,.Х.-.- &, : Х Х _. ;

..[ Х].гД. ВэятьКнигу :[Формы]![Взятолнигу]'[Читатель]15Ми11 [Сообщение Не выбран читатель ]..... j Оста иовитьНак рос ;

[*opMbij![B3FiTi=KHnri/J![l(l34aHHe]kl4ull Х Сообщение Не выбрано издание !..., Останов итьМак рос Не заполнена дата возврата {... рстановитьМакрос j i*pp№ij ' [Б зя тв Книгу] 1[ Дат аВозврат а] <=Х!Х Сор бщение iДата возврата должна быть бопьше текущей |..

... | Остановит ьМакрос.

I ОткрьтьЗапрос ВьйратьКнигу Х [а)ормс.|]![БэятьКннг/11[Читател1?] Is Null Сообщение Не вв'фан читатель ;

... рстаноБитьМакрос :рткрь|тьформу;

^Открываем форм-/ "Невыданные книги" ;

ЗадатьЗнвчение Меняемзагоповрк \ ЗадатьЗначение Х Меняем источник записей Х ^рткрытьФорму.

Рис. 13.31. Копирование макроса 14. Измените условие, проверяющее значение поля ДатаВозврата: [Формы]![Взять Книгу] ![ДатаВозврата]>Оа1е().

15. Закройте макрос, сохранив его под именем Формуляр.

Теперь нужно связать макросы с соответствующими кнопками формы Взять Книгу. Форма ВзятьКнигу должна быть открыта в режиме конструктора.

1. Выделите кнопку ВыбратьВозврат и откройте вкладку События (Events) окна свойств.

424 Занятие 13. Макросы 2. Раскройте список макросов в свойстве Нажатие кнопки (Click). В нем отобра жаются все макросы, в том число ге, которые включены в один объект Фор муляр. Выберите элемент Формуляр.ВыбратьКнигу.

ШГКнопка: СохранитьВо """"Х n I С cл pa нитьВ аз вра т Выход ж... > Новый автор Новый авторГ К. да:- iSIM,-.

Обновление списка СдатьКнигу Форма Формуляр Формуляр. ВзятьКнигу эж-ет-иб клжишм, Х,. :

Формуляр СдатьКнигу " Рис. 13.32. Связывание макроса с кнопкой на форме 3. Выделите кнопку СохранитьВозврат и свяжите с событием Нажатие кнопки (Click) макрос Формуляр.СдатьКнигу.

4. Выделите кнопку Сохранить и измените имя макроса, связанного с событием Нажатие кнопки (Click): Формуляр.ВзятьКнигу.

5. Переместите две новые кнопки так, чтобы они находились точно поверх ана логичных кнопок Выбрать и Сохранить.

Выделите обе кнопки и выполните команду Формат > На задний план (Format > Send to Back). Тем самым вы спрячете их под ранее созданные кнопки Выбрать и Сохранить.

Создание макроса, открывающего форму СдатьКнигу Последний макрос, который нужно создать, должен открывать форму СдатьКни гу. В этом макросе нужно открыть форму ВзятьКнигу и установить свойство Вы вод на э к р а н (Visible) у кнопок, вызывающих макросы. Кроме этого, нужно изме нить заголовок формы и установить значение элемента управления ДатаВоз врата. Все это делается с помощью макрокоманды ЗадатьЗначение (SetValue).

1. Нажмите кнопку Создать (New) в окне базы данных для создания нового мак роса.

2. Создайте первую макрокоманду ОткрытьФорму (OpenForm), задав имя формы ВзятьКнигу.

Как превратить форму В:1ятьКнигу в форму СдатьКнигу... 3. Создайте макрокоманду ЗадатьЗначение (SetValue). Значение аргумента Эле мент (Item) должно быть [Формы]![ВзятьКнигу]![ДатаВозврата], а значение ар гумента Выражение (Expression) Ч Date().

;

Фор ль i]! [ В з ятьКни гу ]! [8 ыбр ат ьВ озвр а т ], [ V isi Ы e]j Ч Q КарточкаДвтораПс * { <Форма > ;

Х*., Section > Ч P-.I, *"^ LJ Читатели ShortcutMenuBat СохранитьВозврат Status Bar Text Ч СЗ Форму пяры Label 1 Tablndex Ч СЗ АеторыИздание j Читатель Tab Stop Ч СЗ Издания Labels Tag Ч СЗ ИзданиеПодформа Х " -: Автор " TextFontChafSet Labels Top Ч fe-^S Издание.ж Jtansp rent Ч Q НееыданныеКнмги -'* I abel.ii i.Р ДатаВозбрата _J Width J_ Рис, 13.33. Создание ссылки на свойство элемента управления формы 4. Создайте вторую макрокоманду ЗадатьЗначение (SetValue). Значение аргумента Элемент (Item) должно быть: [Формы]![ВзятьКнигу]![ВыбратьВозврат].Visible (рис. 13.33), а значение аргумента В ы р а ж е н и е Ч Yes.

5. По аналогии создайте остальные макрокоманды, задав их аргументы (рис.

13.34). Последняя макрокоманда должна устанавливать значение свойства Подпись (Caption).

Ж С деть Книгу Форма : макрос "... Х Х ' '. 1..Примечание-;

ОткрытьФорму ВэятьКнигу ЗадатьЗначение [Формы] ![ВзятьКнигу]|[ДатаВозврата] = Date() ЗадатьЗначение [Формь|]![ВзатьКниг^;

[![Вь|6ратьВо5Бра.т].[у|51Ь1е] = Да ЗадатьЗначение [Формы] |[ВзятьКнигу]![СохраннтьВрзерат]. [Visible] = Да ЗадатьЗначение. [Формы]![ Взять Книг у]! [Выбрать]. [Visible] = Нет ЗадатьЗначение [ Формы] ![ВзятьКнигу]![Сохрамить], [Viable] = Нет ЗадатьЗначение [Формы] ([Взять Книгу]. [С apt ion] ~ "Сдать книгу" ЗадатьЗначение [Фармы]1[ВэятьКнигу].[5Ко1[си(МепиВаг]:= "Сдать книг/ Рис. 13.34. Макрос Сдать Книгу Форма 426 Занятие 13. Макросы 6. Сохраните макрос под именем СдатьКнигуФорма и закройте его.

Чтобы выполнить этот макрос, запустите его прямо из окна базы данных 1. Для этого нужно выделить макрос в списке в окне базы данных и нажать кнопку За пуск (Run) на панели инструментов окна базы данных.

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

Подведение итогов Это занятие было посвящено созданию и использованию макросов. Вы создали несколько макросов, позволивших усовершенствовать взаимодействие связан ных форм Издания и КарточкаАвтора, и построили форму ВзятьКнигу, с помощью которой удобно исполнять операции выдачи книги читателю и сдачу книги чи тателем, создав при этом разнообразные макросы. Вы научились:

Х создавать макросы как в режиме конструктора, так и непосредственно из диалогового окна свойств элементов управления;

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

Х назначать макрос для обработки события элемента управления формы;

Х выполнять макросы в пошаговом режиме, проверяя выполнение каждой мак рокоманды;

Х использовать макрос для обновления данных в поле со списком;

Х динамически изменять свойства формы и ее элементов управления с помо щью макросов.

Макросы пе всегда связыиаются с событиями форм и отчетов.

ЗАНЯТИЕ Сборка приложения ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете:

Х как создать и настроить пользовательское меню и панели ин струментов;

Х как создать главную кнопочную форму и как ее использовать;

Х как настроить рабочую среду Access Х какие существуют способы запуска приложения и как обес печить выполнение начальных дештшш при запуске.

428 Занятие 14. Сборка приложения Для выполнения упражнений этого занятия вам понадобится только файл Биб лиотека.mdb, в котором вы создаете свое приложение. Откройте его перед нача лом занятия Какие существуют возможности Будем считать, что мы создали все необходимые объекты приложения: формы, отчеты, таблицы, запросы. А теперь представьте, что с созданными вами табли цами и формами будут работать другие люди, которые могут не знать Access.

Понятно, что они не должны открывать окно базы данных, искать в нем и за пускать нужные формы Ч для непосвященного человека это сложно и долго.

Поэтому создание приложения на этом не заканчивается Ч необходимо обеспе чить быстрый и простой доступ к тем объектам, которые вы создали.

Существуют уже проверенные способы связать в единое целое множество объ ектов приложения и обеспечить простой и понятный доступ к этим объектам, И мы интенсивно использовали эти способы на протяжении всех занятий. Ко му-то больше нравится запускать команды меню, кто-то предпочитает нажи мать кнопки панелей инструментов, в каких-то случаях удобно бывает создать специальную форму, которая появляется при запуске приложения и имеет кнопки для выполнения различных функций. Еще одна замечательная возмож ность Ч это контекстные меню. Если на экране открыто незнакомое приложе ние то, первое, что хочется сделать, Ч это щелкнуть правой кнопкой мыши и увидеть, какие функции доступны в данный момент.

Все перечисленные возможности доступны разработчику приложений Access.

И целью нашего последнего занятия будет знакомство с этими возможностями.

Мы попробуем создать и меню, и кнопки на панелях инструментов. Мы созда дим главную кнопочную форму приложения Библиотека. И настроим парамет ры запуска таким образом, что пользователь, запустив приложение, увидит только главную кнопочную форму и то меню и панель инструментов, которые мы создадим.

Создание панелей команд Начнем с создания меню и панелей инструментов.

В Microsoft Office 2003 существует специальный тип объектов Ч панели команд, Ч обеспечивающий стандартный способ взаимодействия пользователя с любым приложением Microsoft Office. И строка меню, и контекстное меню, и панели инструментов Ч это все разные тины панелей команд. В своем приложении вы можете использовать как стандартные панели команд Access, изменив их нуж ным образом, так и специальные пользовательские панели команд, которые соз Примеры вы можете найти па сайте издательства www.piter.com на странице, посвящен ной этой книге.

Создание панелей команд дадите сами. Обычно в стандартных панелях команд удаляют лишние кнопки, чтобы пользователь не мог что-либо испортить в приложении. Общие правила создания и функционирования панелей команд различных типов позволяют легко переносить кнопки панелей инструментов в строки меню и наоборот. -ii>i можете создать панели команд, которые относятся к приложению в целом, по являются на экране при запуске приложения и остаются на экране в течение всего сеанса работы с приложением, аналогично тому, как это сделано в Access.

Кроме того, панели команд любого типа можно связать с конкретной формой или отчетом, которые будут появляться на экране только тогда, когда открыта данная форма или отчет. Для этого нужно только установить значения соответ ствующих свойств формы или отчета: Строка меню (Menu Bar), Панель инструмен тов (Toolbar), Контекстное меню (ShortcutMenuBar).

Создание меню Создание и изменение панели команд любого вида выполняется в режиме на стройки, вызываемом либо командой Вид > П а н е л и инструментов >Х Настройка (View >Х Toolbars > Customize), либо командой контекстного меню.

1. Щелкните правой кнопкой мыши на панели инструментов или меню и выбе рите в контекстном меню команду Настройка (Customize). Откроется диалого вое окно Настройка (Customize) (рис. 14.1).

;

Панели iefetpV Веб-узел Выравнивание и размер " Запрос в режиме таблицы Конструктор загросов "" Конструктор макросов "~ Конструктор отчетов Г" Конструктор таёлиц "" Конструктор форм Контекстные меню.. Макет страницы "~ Области задач ^ Панель элементов.. Предварительный просмотр Г" Работа с исходным текстом Г" Разметка страницы Х, ХХХ Рис-14.1. Диалоговое окно Настройка Раскройте вкладку Панели инструментов (Toolbars). В списке на вкладке пере числены стандартные панели команд (строка меню'и различные панели ин струментов) приложения Access. К этому списку нужно добавить новую па нель команд типа Строка меню (Menu Bar).

430 Занятие 14. Сборка приложения 2. Нажмите кнопку Создать (New), it диалоговом окне введите имя новой пане ли команд Главное меню и нажмите кнопку ОК.

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

3. Нажмите кнопку Свойства (Properties) (см. рис. 14.1), Появится диалоговое ок но Свойства панели инструментов (Toolbar Properties) (рис. 14.2).

Свойства панели ин Драимая панель: %jSfg M iM^ e^ ^ M ^p j Дj e l ^!

Х--- Сеойств'в панели инструмента --;

rts Г паьное меню,, M l i Jl Панель инструментов закрепление;

17 отображен. гремещение -:..г"': i ;

' отображение и ейрут-ие | Закрыть I Рис. 14.2. Диалоговое окно Свойства панели инструментов Х 4. В раскрывающемся списке Тип (Туре) выберите значение Строка меню (Menu Bar).

Кроме типа, в этом окне еще есть несколько флажков, устанавливая кото рые, вы можете задать поведение этой панели команд.

П Отображение в меню (Show on Toolbars M e n u ). Установите этот флажок, если хотите, чтобы название напели команд отображалось в списке панелей инструментов Вид ъ Панели инструментов (View > Toolbars) и в контекстном меню панелей инструментов Этот список состоит из доступных и види мых панелей команд.

П Настройка (Allow Customizing). Снятие этого флажка запретит изменение данной панели команд.

П Изменение размера (Allow Resizing). Снятие этого флажка запретит измене ние размеров данной панели команд.

П Перемещение (Allow M o v i n g ). Снятие этого флажка запретит возможность перемещения панели команд по экрану.

П Отображение и скрытие (Allow Showing/Hiding). Снятие этого флажка за претит возможность скрывать и снова показывать панель команд на эк ране.

Создание панелей команд В поле со списком З а к р е п л е н и е (Docking) можно выбрать позицию панели ко манд на экране: ло горизонтали, по вертикали, и по горизонтали и по верти кали, или вообще запретить текущую позицию.

5. Сейчас мы не будем менять установленные по умолчанию значения, поэто му нажмите кнопку Закрыть (Close).

Итак, мы создали пустую строку меню. В ней видна только строка для ввода вопроса. Теперь добавим в нее элементы Ч списки команд, раскрывающиеся при выборе их в строке меню или на панели инструментов.

6. Раскройте вкладку К о м а н д ы (Commands) в диалоговом окне Настройка (Custo mize).

7. Выделите в списке Категории (Categories) значение Новое м е н ю (New M e n u ).

8. Перетащите элемент Новое меню из списка К о м а н д ы на новую панель эле ментов.

На пей появился элемент Новое меню (New M e n u ) (рис. 14.3).

к !'С-го:л11г!|1'И;

!т.|ШИг-1-.1Ч.'|^Д: л Ш Й * 18 : "'п..

Работа с исходный Встроенные меню Все таблицы Все запросы Все формы Все отметь!

Все веб-страницы Все макросы Элементы ActiveX. 14.3. Добавление элементов в меню 9. Сначала нужно изменить его имя. Щелкните на кнопке И з м е н и т ь выделенные объект (Modify Selection). Раскроется контекстное меню команд (рис. 14.4).

432 Занятие 14. Сборка приложения Введите в поле ввода И м я (Name) название элемента меню Д а н н ы е и закройте меню, щелкнув где-нибудь в другом месте.

Удалить Имя: Данные Рис. 14.4. Изменение названия элемента меню Добавим в меню Данные команды с помощью вкладки Команды (Commands), включив те, что будут открывать созданные нами формы просмотра и ввода информации об изданиях, авторах и читателях.

10. Выберите в списке Категории (Categories) элемент Все ф о р м ы (AIL Forms).

В правой части окна в списке Команды (Commands) появляется список форм (рис. 14.5).

И. Перетащите в меню по очереди формы К а р т о ч к а А в т о р а, И з д а н и я и Ч и т а тели.

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

Новая команда размещается под этой линией.

Ч1е^добй№цкфандумай*1Иь.ннлткМвнго.-. выберите;

э абота с исходны! текЖ Устроенные меню Зсе таблицы КарточкаДвТ!;

раПо дф орма Все запросы Читатели J отчеты Формуляры 5с s веб-страницы Зс е макросы АеторыИздание Элементы ActiveX Издания Новое меню - :

Рис. 14.5. Добавление команд в меню Создание панелей команд Рис. 14,6. Меню Данные В результате вы должны получить меню, представленное на рис. 14.6.

Посмотрим, как управлять внешним видом команд меню.

12. Щелкните правой кнопкой мыши на строке КарточкаАвтора. Появится уже знакомое контекстное меню, но теперь в нем доступны все элементы (рис. 14.7), Сброс Удалить Имя: ' КарточкаАетора Копировать значок на кнопке Вставить значок для кнопки Восстановите, значок на кнопке Изменить значок на кнопке Выбратьзначакдлякнопки Основной стиле Только текст (всегда) Тслы<.атекст(в меню) Значок к текст Х-1' Назначш~ь гиперссылку Свойства Рис. 14.7. Контекстное меню Для нового меню по умолчанию применяется Основной стиль (Default Style), когда на элементе меню выводится значок и текст. Для формы выводится стандартный значок формы. Но в данном случае один и тот же значок выво дится для всех элементов меню. Поэтому можно либо установить стиль, при котором выводится только текст, либо для каждого элемента меню приду мать свой значок.

13. Выберите пункт Только текст (в меню) (Text only (In Menus)).

14. Подправьте название команды: Карточка автора, 15. Измените стиль каждого элемента меню.

16. Чтобы добавить следующее меню со списком команд в строку меню, кото рую мы создаем, нужно снова выбрать на вкладке К о м а н д ы ( C o m m a n d s ) диалогового окна Настройка (Customize) категорию Новое меню (New M e n u ), 15 Зак. 434 Занятие 14. Сборка приложения перетащить элемент Новое меню (New Menu) в строку меню Главное меню и по местить его справа от меню Д а н н ы е (где должна появиться вертикальная чер та). Назовите новое меню Формуляры, 17. Добавьте в меню Ф о р м у л я р ы форму В з я т ь К н и г у и макрос СдатьКнигуФорма.

Чтобы добавить макрос, сначала выберите категорию Все макросы (ALL Macros) и затем в списке нужный макрос (рис. 14.8).

.

ВзятьКнигу СдэтьКнигчФорма Работа с исходный тек %$% Формуляр Встроенные пеню Все таблицы ^'S Форму ляр.Взять Книг у Все запросы Ш Форму л яр. Выбрать К ниг> Все формы See отчеты || Формуляр.СдвтьКнигу Зсе веб-страницы Элементы ActiveX Справочник Издательства Новое меню Рис. 14.8. Добавление макроса в меню 18. Измените имена элементов меню: Взять книгу, Сдать книгу.

Следующее меню в строке меню должно содержать все отчеты.

19. Снова добавьте в строку меню элемент Новое меню (New Menu) и назовите его Отчеты, Включите в это меню все отчеты, которые мы с вами создавали. Для этого нужно открыть категорию Все отчеты (AIL Reports).

Самостоятельно создайте меню Справочники. Включите в него таблицы Изда ЗАДАНИЕ тельства, Города, Разделы и МестаХранения.

Кроме ваших команд, в главное меню приложения можно включить и стан дартные команды. Для примера включим несколько команд меню Файл (File).

20. Сначала стандартным способом создайте новое меню (вставьте его первым, перед меню Д а н н ы е ). Назовите его тоже стандартно: Файл.

21. Выберите категорию Файл (File) и перетащите из нее в меню Файл команды Экспорт (Export), Параметры страницы (Page Setup), Выход (Exit)1.

Если вы пользуетесь англоязычной версией Access, вы можете изменить название стан дартных команд меню, написав их по-русски.

Создание панелей комлнл 43'l Чтобы придать меню профессиональный вид (как и стандартном меню Access), назначим каждому меню и команде меню клавиши доступа. Буквы, соответ ствующие этим клавишам, выделяются в названии элемента подчеркиванием.

Клавиши доступа используются следующим образом. Чтобы раскрыть меню, нужно при нажатой клавише Alt нажать клавишу, соответствующую подчеркну той букве в названии этого меню. Например, комбинация клавиш Alt+Ф раскры вает меню Файл. Далее, чтобы выбрать команду меню, достаточно просто нажать клавишу, соответствующую подчеркнутой букве в названии команды.

Чтобы указать символ, который будет определять клавишу доступа, нужно в име ни команды вставить перед этим символом знак л&. например, &Справочники.

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

Если при создании меню вы где-то ошиблись и хотите удалить элемент меню, перетащите этот элемент в пустую область окна приложения Access и отпустите.

Когда меню готово, закройте диалоговое окно Н а с т р о й к а (Customize), схватите меню за заголовок и переместите в удобное место, например, в верхнюю часть окна приложения. Полная строка главного меню должна выглядеть так, как представлено на рис. 14.9.

Ёид :. ретав*,а, Серв Йтчеты *брмупвры Соэдание запроса в режиме конструктора Создание запроса с помощью мастера АвторКмиг ВзятьКнигу Вэ^тьКнигу!

Вьщаиные^ниги ДатаЦена Книги по авторам Книги по раэде/ам МестаХрзнемияЗзпрос НевыданныеКмиги Сдать Км игу Рис. 14.9. Строка главного меню приложения 436 Занятие 14. Сборка приложения Чтобы менять расположение элементов в меню и на панелях инструментов, как пользовательских, так и стандартных, в Microsoft Office Access 2003 появилась специальная кнопка Упорядочить команды (Rearrange Commands) на вкладке Ко манды (Commands) диалогового окна Настройка (Customize).

Откройте еще раз это окно и раскройте вкладку Команды. Щелкните на кнопке Упорядочить команды. Появится диалоговое окно Изменение порядка команд (Re arrange Commands) (рис, 14.10). В этом окне в раскрывающихся списках можно выбрать любую строку меню или панель инструментов. Слева появится макет выбранной панели с перечнем всех команд. Добавлять и удалять команды этой панели можно кнопками Добавить (Add) и Удалить (Delete). Кнопками Вверх (Move Up) и Вниз (Move Down) можно менять порядок следования команд на панели, выделив нужную команду. В этом окне есть также кнопка Изменить выделенный объект (Modify Selection) для доступа к контекстному меню и окну свойств панели.

Открыть...

1 1 ох ранить й Щ;

Поискфайлов...

Вии;

.

..^" Печать ij^ Прелвзрительный просмотр "t?;

. Орфография.,, | i Вырезать 'Х?!$: Копировать id | Вставить & Рис. 14.10. Диалоговое окно Изменение порядка команд Изменить последовательность команд в меню и панелях инструментов мож но, перемещая их мышью в режиме настройки, то есть при открытом диало говом окне Настройка (Customize). Поэтому новое окно, по сути, дублирует уже существующие возможности Access.

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

Контекстное меню всегда связано с каким-либо объектом: формой, элементом управления, панелью команд и т. д. Создадим контекстное меню для формы ВзятьКнигу и включим в него команды, запускающие макросы, связанные с кнопками на форме. Это альтернативный способ выполнения действий в форме.

1. Откройте диалоговое окно Настройка (Customize).

2. Раскройте вкладку Панели инструментов (Toolbars) и кнопкой Создать (New), создайте новое меню Взять книгу.

3. Нажмите кнопку Свойства (Properties) и в диалоговом окне Свойства панели ин струментов (Toolbar Properties) выберите в раскрывающемся списке тип (Туре) значение Контекстное меню (Popup). Панель инструментов преобразуется в контекстное меню, и вы получите предупреждение о том, что данное контекст ное меню исчезнет с экрана.

4. Нажмите кнопку ОК и закройте окно свойств панели инструментов. Новля панель команд исчезла.

5. Выберите в списке Панели инструментов элемент Контекстные м е н ю (Shortcut Menus) (установите флажок). Тогда на экране появится специальная панель Контекстные меню (Shortcut Menus). Она содержит все контекстные меню Access.

Создаваемые пользователем контекстные меню отображаются в меню На страиваемый (Custom) (рис. 14.И).

.базыданных" 9ильтр" Ферма" Индекс". Макрос" Моцувь" Запрос" Связь* Отчету. Таблица" ЛоосмотрмакегЭ";

Другой - [И астранваемь1й j Рис. 14.11. Панель инструментов Контекстные меню Команды в контекстное меню добавляются точно так же, как в обычное меню.

Нам нужны три команды:

П Выбрать книгу Ч должна открываться форма НевыданныеКниги;

П Сохранить Ч должен запускаться макрос Формуляр.ВзятьКнигу;

П Закрыть Ч должна выполняться команда Закрыть (Close) меню Файл (File).

6. Для удобства добавления команд сдвиньте панель контекстных меню так, чтобы она не перекрывалась диалоговым окном Настройка (Customize).

7. Выберите категорию Все формы (All Forms) и перенесите в меню Взять книгу форму НевыданныеКниги.

8. Выберите категорию Все макросы (ALL Macros) и перенесите в меню макрос Формул яр, ВзятьКнигу.

9. Выберите категорию Файл (File) и перенесите в меню команду Закрыть (Close).

10. Измените названия команд меню так, как показано в списке (шаг 5).

11. Закройте диалоговое окно Настройка (Customize).

438 Занятие 14. СЬорка приложения Связывание меню, контекстных меню и панелей инструментов с формами и отчетами Созданные строки меню, контекстные меню и панели инструментов можно свя зывать с формами и отчетами, определив соответствующие свойства формы или отчета.

В качестве примера свяжем созданное нами контекстное меню с формой Взять Книгу.

1. Откройте форму в режиме конструктора и диалоговое окно свойств формы.

2. Раскройте вкладку Другие (Other) (рис. 14.12).

Рис. 14.12. Связывание контекстного меню с формой На этой вкладке есть два свойства для подключения контекстного меню:

ГЛ свойство Контекстные меню (Shortcut Menu) разрешает или запрещает вы вод на экран контекстного меню для этой формы;

D свойство Контекстное меню (Shortcut Menu Bar), в котором указывается имя контекстного меню, подключаемого к форме.

3. Установите значение свойства Контекстное меню (Shortcut Menu Ваг) равным Взять книгу (свойство Контекстные меню по умолчанию имеет значение Да).

Если специальное контекстное меню в поле Контекстное меню не указано, а поле Контекстные меню имеет значение Да, то при щелчке правой кнопкой мыши на этой форме будет выводиться стандартное контекстное меню.

Контекстное меню может быть связано не только с формой, но и с, элемен том формы, так как элемент управления тоже имеет свойство Контекстное меню (Shortcut Menu Bar) на вкладке Другие (Others) (рис. 14.13), Создание панелей команд I Поле со списком: ЧнтйтеДЬ F Читатель.

Макет ) Данньда ] События " Другие ] Все Имя,,,.................... Читатель |ешт строки состояьы.......

Р5.*,им ЕГ*,,................. Нет контроля...... Д.

-Да,..,.,.., о.........

Контекстше немю........... | Рис, 14.13. Свойства элемента управления формы Аналогично связываются с формами строки меню и панели инструментов.

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

У элемента управления формы есть только одно свойство Ч Контекстное ме ню. Это меню отображается щелчком правой кнопкой мыши на данном эле менте управления.

4. Переключите форму ВзятьКнигу в режим формы и щелкните на ней право!1:

кнопкой мыши. Появится созданное нами контекстное меню.

5. Закройте форму, сохранив изменения макета.

Взять книгу Х Автор Г Г 5! и-.?,:< ч i F-II. 'ХХ( Х*<ХХ': и Рис. 14.14. Специальное контекстное меню в форме 440 Занятие 14. Сборка приложения Чтобы форма ВзятьКнигу работала корректно, создайте еще одно контекст ЗАДАНИЕ ное меню Сдать книгу, которое содержит команды, запускающие макросы, связанные с кнопками ВыбратьВозврат и СохранитьВозврат. Измените макрос СдатьКнигуФорма та ким образом, чтобы при переключении формы подключалось контекстное меню Сдать книгу.

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

Раскройте список макросов в окне базы данных приложения. Выделите макрос СдатьКнигуФорма и перетащите его в строку меню, которое мы создали. В строке меню появляется кнопка со значком макроса и названием формы, при нажатии которой открывается форма ВзятьКнигу в режиме сдать книгу*- (рис. 14.15).

Рис. 14.15. Добавление кнопки в строку меню Как видите, в одной строке меню могут размещаться как подчиненные меню, так и кнопки. Точно так же добавляют кнопку в одну из стандартных панелей инструментов. Если таких кнопок, которые вы хотите создать для вызова опре деленных функций приложения, будет несколько, лучше создать отдельную па Создание панелей команд 44 нель инструментов и включить в нее все эти кнопки, а также некоторые полез ные кнопки стандартных панелей инструментов.

Пользовательская панель инструментов создается в режиме настройки панелей команд Access так же, как меню.

1. Создайте новую панель инструментов Библиотека. Оставьте значение свой ства тип (Туре) равным установленному по умолчанию значению Панель инст рументов (Toolbar).

2. Добавьте на эту панель формы КарточкаАвтора, Издания, Читатели.

По умолчанию на кнопке выводится значок и текст (рис. 14.16).

j КаргочкаАетope _JJi Издания j jlgl Чигдтели[| Рис. 14.16. Пользовательская панель инструментов Однако если на панели должно быть много кнопок, такой вариант не подхо дит. Чаще всего на кнопку все-таки помешают какой-нибудь значок, но в данном случае для всех кнопок использован один стандартный значок формы. Можно попробовать поместить на них разные значки, 3. Щелкните правой кнопкой мыши на кнопке КарточкаАвтора. В открывшемся контекстном меню можно ввести нужный текст либо выбрать команду Вы брать значок для кнопки (Change Button Image). Появится таблица стандартных значков (рис. 14.17).

J Ш Ф Х % t с -ц <* Рис. 14.17. Набор стандартных значков Можно даже создать специальный значок. Для этого в Access включен ре дактор кнопок, который появляется при выборе команды И з м е н и т ь з н а ч о к на кнопке (Edit Button Image) контекстного меню.

4. Добавьте на панель инструментов форму ВзятьКнигу и макрос СдатьКнигу Форма., а также отчеты Алфавитный каталог, Формуляры читателей и Суммы покупок.

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

Как правило, стандартные панели инструментов делают недоступными пользователю.

442 Занятие 14. Сборка приложения ЕШ Издания j.Чжатели 1Д1 6 зять г, ни г и -^ Сдать RH игу gjj Каталог igjj Формуляры [yg С t-м мы покупок Рис. 14.18. Панель инструментов Библиотека Еще несколько слов о подсказках - всплывающих сообщениях, которые появ ляются, когда пользователь удержинает указатель мыши на кнопке панели ин струментов. При добавлении кнопок па панель инструментов автоматически устанашшиается значение свойства элемента Всплывающее сообщение (ScreenTip).

Это значение можно изменить, а значит, изменится и текст подсказки.

1. Щелкните на кнопке Сдать книгу правой кнопкой мыши и выберите в контекст ном меню команду Свойства (Properties). Появится диалоговое окно Свойства элемента (Control Properties) (рис. 14.19).

2. Введите в поле ввода свойства В с п л ы в а ю щ е е с о о б щ е н и е (ScreenTip) новый текст: Оформить сдачу к н и г и.

3. Аналогично измените текст подсказки для кнопки Взять книгу: Оформить вы дачу к н и г и.

4. Закройте диалоговое окно Н а с т р о й к а (Customize) и переместите панель ин струментов в верхнюю часть окна приложения.

Свойства элемента Библиотека,'"с -;

af'H. Х"..I'll'-1, ill Х Рисунок и текст |, I,,., ;

Г" Создать группу Рис. 14.19. Диалоговое окно Свойства элемента Библиотека Созданная панель инструментов будет появляться каждый раз при открытии файла Библиотека.mdb и отображаться постоянно, пока вы работаете с этим при ложением.

Можно создать панели инструментов, связанные с конкретными объектами:

формами, отчетами. Например, если вы собираетесь отключить стандартные панели инструментов, чтобы пользователь не мог воспользоваться кнопками, Управление отображением панелей команд предназначенными для разработчика приложения, и что-нибудь испортить, придется создать специальные панели для отчетов, для форм, в которых преду сматривается просмотр, поиск и фильтрация записей и т. д. Обычно такие пане ли инструментов собирают из стандартных команд Access и затем подключают к нужным объектам. Пример такой специальной панели инструментов пред ставлен на рис. 14.20. В нее включены некоторые кнопки стандартной панели инструментов режима предварительного просмотра;

Х кнопка Печать категории Файл (File);

Х кнопка и поле со списком Масштаб категории Вид (View);

Х кнопка Связи с Office категории Сервис (Tools).

Рис. 14.20. Спеииадьная панель инструментов Такую панель инструментов можно подключить ко всем отчетам, установив свойство П а н е л ь инструментов (Toolbar) на вкладке Д р у г и е (Other) отчета (рис. 14.21). Эта панель инструментов будет появляться, только когда отчет от крыт в режиме предварительного просмотра.

События -Другие Х'-< Х;

-,",;

ХХ Параметры настройки...

... Н-Г [Отчеты fell Мзличие модупа, Рис, 14.21. Подключение панели инструментов к отчету Управление отображением панелей команд Все пользовательские панели инструментов отображаются в контекстном меню, появляющемся при щелчке правой кнопкой на области панелей команд и верхней части окна приложения Access. Снимая или устанавливая флажок у имени панели инструментов, соответствующую панель можно отображать или скрывать (рис. 14.22).

444 Занятие 14. Сборка приложения Если нужная панель отсутствует в списке, откройте окно Настройка, найдите эту панель в списке Панели инструментов и кнопкой Свойства откройте диа логовое окно Свойства. Проверьте, установлен ли флажок Отображение в меню (Show on Toolbars Menu). Кроме того, панели инструментов, связанные с формами или отчетами, отображаются на экране, только когда открыта со ответствующая форма или отчет.

;

-;

-I \f' J.-* -Л * Щ -t. "~ -'* - '':',''. 'Х JJ Авторы Q3 Издания f Читатели ^ Ёзятьг.нигу.J;

Сдать книгу iji Кзталог %% Формуляры ^ Сумг-^ы^пои^ок Щ ;

Х 4й" -- ^оомул^Ы Денные ^тчеты рправочлики ;

J СдатьКнитуФорр^. _Ч _. щ т - - ^ v } Баэаданныи Д ^ ^- ^ - I 4. Веб-узел I -'.. | Область задач ^Д[Д: Библиотека 1 "?;

Отчеты Рис. 14.22. Контекстное меню панелей команд Обратите внимание, что пользовательские меню не отображаются в этом кон текстном меню. Чтобы отобразить или скрыть строку меню, нужно открыть диалоговое окно Настройка, найти в списке Панели инструментов нужное меню и установить или снять флажок слева от него. Например, чтобы удалить сейчас с экрана строку меню Главное меню, нужно снять флажок этого меню.

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

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

Создание главной кнопочной формы Роль меню, где пользователь выбирает нужные операции, может играть кнопоч ная форма. Эта форма содержит кнопки, нажимая которые, пользователь также выбирает объекты приложения: открывает формы, таблицы, выполняет запро сы и создает отчеты. Для создания такой формы проще всего воспользоваться специальным мастером, Диспетчером кнопочных форм (Switchbord Manager).

Создадим такую форму для нашего приложения Библиотека.

Создание главной кнопочной формы 1. Выберите команду Сервис > Служебные программы > Диспетчер кнопочных форм (Tools > Database Utilities > Swithboard Manager).

Поскольку база данных не содержит кнопочных форм, мастер открывает диа логовое окно, запрашивающее, нужно ли создавать кнопочную форму.

2. Нажмите кнопку Да, появится диалоговое окно со списком страниц кнопоч ной формы (рис. 14.23.).

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

Сначала создадим страницы нашей кнопочной формы.

Диспетчер кнопочных Форм Главная кнопочная форма (По умолчанию) -Сменить...

Рис. 14.23. Диалоговое окно Диспетчер кнопочных форм 3. Нажмите кнопку Создать (New). В диалоговом окне введите имя новой стра ницы Формуляры (рис. 14.24) и нажмите кнопку ОК. Имя новой страницы по является в списке диспетчера. Создайте так же страницы Отчеты и Справочники.

Рис. 14.24. Создание страницы кнопочной формы 4. Теперь выделите первую страницу Главная кнопочная форма (Main Switch board) в списке и нажмите кнопку Изменить (Edit). Открывается диалоговое окно Изменение страницы кнопочной формы (Edit Switchboard Page (рис. 14.25'), 446 Занятие 14. Сборка приложения содержащее название страницы и список элементов на этой странице (пока пустой).

В этом окне можно добавлять, изменять и удалять элементы выбранной страницы формы, а также менять порядок их размещения на странице (кнопками Вниз (Move Down) и Вверх (Move Up)).

Изменение страницы кнопочной Формы "(Главная кнопочная форма < i д ^нц-и- |.чип.,'.,.'.1... Х i.

Х..,.. ir Рис. 14.25. Диалоговое окно Изменение страницы кнопочной формы 5. В поле Название кнопочной формы (Switchboard Name) замените стандартное название новым Библиотека. Список элементов формы пока пуст, и доступна только одна кнопка Создать (New). Чтобы создать псфвый элемент, нажмите эту кнопку. Появляется диалоговое окно Изменение элемента к н о п о ч н о й фор мы (Edit Switchboard Item) (рис. 14.26).

^1.-.гЯ5-Н;

|::ж1тп^1* Рис. 14,26. Диалоговое окно Изменение элемента кнопочной формы В поле Текст (Text) введите наименование создаваемой кнопки Авторы.

Второе поле Команда (Command) позволяет определить действие при нажа тии этой кнопки. Список этих 8 действий представлен на рис. 14.26. Это мо жет быть открытие формы в режиме добавления записей или редактирова ния, открытие отчета, запуск макроса или процедуры VBA, запуск мастера для редактирования кнопочной формы, переход к другой кнопочной форме и выход из приложения.

7. Выберите элемент Открыть форму для и з м е н е н и я (Open Form in Edit Mode) и в сле дующем поле выберите в списке имя формы КарточкаАвтора (рис. 14.27).

Создание главной кнопочной формы Изменение элемента кнопочной формы |:|Автсры :

JOT крыть форму дпя изменения &..'. ::

-:. :

{КарточкаДет Рис. 14.27. Определение кнопки, открывающей форму Название последнего поля в форме (см. рис. 14.27) изменяется в зависимо сти от выбранной команды во втором поле. Если выбранное в списке дей ствие не требует задания аргумента, третье поле вообще отсутствует.

8. Нажмите кнопку ОК. В списке элементов кнопочной формы появился пер вый аргумент.

9. Аналогично добавьте кнопки для форм Издания и Читатели.

10. Следующая кнопка должна открывать страницу Формуляры. Нажмите кноп ку Создать (New). В окне Изменение элемента кнопочной формы (Edit Switchboard Item) введите текст Формуляры. Оставьте команду Перейти к кнопочной форме (Go to Switchboard), предлагаемую по умолчанию, и выберите имя страницы кнопочной формы Формуляры (рис. 14.28).

Изменение элемента кнопочной формы ГОсрмупяры [Перейти к кнопочной ферме |формуляры| Рис. 14.28. Определение кнопки, открывающей другую странииу 11. Аналогично создайте кнопки, которые будут открывать страницы Отчеты и Справочники (сначала нужно создать сами эти страницы).

12. Последняя кнопка Выход должна обеспечить выход из приложения. Созда вая ее, выберите в списке команду Выйти из приложения (Exit Application).

В результате главная страница должна выглядеть как на рис. 14.29.

13. Нажмите кнопку Закрыть (Close), чтобы закрыть эту страницу.

Страница Библиотека будет открываться по умолчанию при открытии глав ной.кнопочной формы. Аналогично можно добавить кнопки на другие стра ницы.

14. Выделите в списке Страницы кнопочной формы (Switchboard Pages) страницу Формуляры и нажмите кнопку Изменить (Edit).

Снова откроется диалоговое окно Изменение страницы кнопочной формы (Edit Switchboard Page).

15. Добавьте в нее две кнопки:

D Взять книгу, открывающую форму ВзятьКнигу.

П Сдать книгу, выполняющую макрос СдатьКнигуФорма.

448 Занятие 14. Сборка приложения Изменение страницы кнопочной Рис. 14.29. Элементы основной страницы кнопочной формы 16. Заполненное окно для кнопки Сдать книгу представлено на рис. 14.30.

юншншн ' {Изменением пемента кнопочной Формы [Сдать книгу ок | а V ".....

. '^Выполнить макрос Of "ста [.......

Х j> JC да ть К ни гу Фо рм а| Ц!

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

17. Добавьте эту кнопку, заполнив поля как на рис. 14.31.

18. Аналогично создайте кнопки для страницы Отчеты. Их должно быть четыре:

три для каждого из отчетов (при их создании используйте команду Открыть отчет (Open Report)) и четвертая для перехода к главной форме.

Изменение элемента кнопочной формы.. |К главной странице :лj,----.- -.^ 4 ^.1 4 j < '|Перейти к кнопс'чной форме s J -' O,, r,. ] b,nvnC'4i-!a } фО(№13" [Библиотека Рис. 14.31. Создание кнопки перехода на главную страницу Кнопки на странице Справочники должны открывать для редактирования со ответствующие таблицы. Но среди команд в кнопочной форме нет команды О т к р ы т ь таблицу. Поэтому для справочников нужно создать либо соответ ствующие формы, либо макросы. Однако окно Диспетчера кнопочных форм является модальным, то есть когда это окно открыто, нельзя открывать дру гие объекты, пользоваться меню и панелями инструментов. Поэтому придется Создание главной кнопочной формы закрыть это окно, создать макросы, а потом снова открыть и доделать стра ницу Справочники.

19. Нажмите кнопку Закрыть (Close) в окне Диспетчер кнопочных форм (Switch board Manager).

20. Создайте макросы для каждой из таблиц-справочников: Города, Издательства, Разделы, МестаХранения. Каждый макрос должен состоять из одной макроко манды ОткрытьТаблицу (ОрепТаЫе).

21. После этого снова выполните команду Сервис * Служебные программы > Диспет чер кнопочных форм (Tools > Database Utilities > Switchboard Manager).

22. Выделите страницу Справочники и нажмите кнопку Изменить (Edit).

23. Создайте на этой странице кнопки Города, Издательства, Разделы, Места хране ния и К главной форме.

24. Закройте все диалоговые окна, в том числе окно диспетчера кнопочной формы.

25. Раскройте список форм в окне базы данных и найдите форму Кнопочная фор ма (Switchboard).

26. Откройте эту форму. Она будет выглядеть, как на рис. 14.32.

Рис. 14.32. Главная кнопочная форма Это пока только заготовка. И мы можем улучшить ее внешний вид в кон структоре форм.

27. Переключитесь в режим конструктора.

28. Выделите элемент управления Рисунок (Image) (прямоугольный слева) и до бавьте к нему рисунок, установив свойство Рисунок (Picture) (рис. 14.33).

29. Удалите элемент П р я м о у г о л ь н и к (Rectangle) в верхней части окна и оставьте только один элемент Надпись (Label) (по умолчанию создаются два элемента, давая эффект тени).

450 Занятие 14. Сборка приложения Внедренный Вписать По ент В;

с-г г,о Ог.*;

.:г, <ргЧ, 1'UH Тип^ома,.'i ;

Х.,:, if.i1,:* ^..|;

.|,:=,.|Обычный Рис. 14.33. Настройка главной кнопочной формы 30. Измените цвет текста надписи Библиотека (черный) и увеличьте размер шрифта.

31. Выделите раздел Область данных (Detail) и установите для нее цвет фона белый.

В результате вы должны получить форму, представленную на рис. 14.34.

Библиотека И Авторы Издания Читатели Л] Формуляры Отчеты Справочники U Выход Рис. 14.34. Окончательный вид главной кнопочной формы Проверьте, как действуют кнопки, например, если нажать кнопку Ф о р м у л я р ы, содержание формы изменится, и вы увидите вторую страницу.

Настройка параметров запуска Настройка параметров запуска Существует два способа задать действия, выполняемые приложением при за пуске: установка параметров запуска в специальном диалоговом окне и созда ние макроса AutoExec.

Макрос используется для выполнения некоторой программы инициализа ции, которая может запросить ввод каких-либо данных, проверить определен ные условия, открыть какие-то формы заранее и т. д. При открытии базы дан ных Access проверяет наличие макроса A u t o E x e c и выполняет его, если он существует.

Второй способ использует установку параметров запуска.

1. Выберите команду Сервис > Параметры запуска (Tools > Startup). На экране по явится диалоговое окно Параметры запуска (Startup) (рис. 14.35).

т glK неточная формз| Г~ П Строка состояния :;

(по умолчанию) ;

|Главное меню 1 Полны Г~ Г" Контекстные меню по умолчанию (бь!рюд окна б*5ы данных, окнл прдарки и Рис. 14.35. Диалоговое окно Параметры запуска В диалоговом окне Параметры запуска (Startup) можно задать:

D Значок и заголовок вашего приложения, которые будут отображаться в главном окне приложения и на панели задач вместо стандартного знач ка и заголовка Microsoft Office Access. Значок должен быть задан в файле с расширением,1СО, а выбрать этот файл можно с помощью кнопки по строителя.

D Меню, которое будет появляться при запуске вместо стандартного меню Access и определять основные функции приложения.

D Форму или страницу доступа к данным, которая будет появляться на эк ране при открытии базы данных.

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

452 Занятие 14. Сборка приложения Флажки Окно базы данных (Display Database Window) и Строка состояния (Display Status Bar) позволяют скрывать при запуске окно базы данных и строку со стояния.

Следующая группа флажков позволяет запретить пользователям вносить изменения в разработанное приложение. Пока вы разрабатываете приложе ние, все эти флажки установлены, но когда вы собираетесь передавать его пользователям, целесообразно снять флажки Полный набор меню Access (Allow Full Menus), Встроенные панели инструментов (Allow Built-in Toolbars) и Allow Toolbar/Menu Changes (Изменение панелей инструментов/меню). Вместо стан дартных меню и панелей инструментов можно применять пользовательские меню и панели инструментов, которые вы разработали, или встроенные со кращенные меню, не допускающие пользователя к конструкторам. Чтобы пользователь не мог получить доступ к полным меню с помощью специаль ной комбинации клавиш Ctrl+Fll или к окну базы данных с помощью клави ши F11, нужно снять еще и флажок С п е ц и а л ь н ы е к л а в и ш и Access (Use Access Special Keys).

ffiБиблиотека ЕЗЙП. формуляры Данные Отчеты Отравочники 5 Авторы ГГ| Издания ( Читатели Щ Взятыэдц-у ^ Сдать o*iry.^Каталог зз Формуляры Ш Суммы покупик Авторы Издания Х13 Читатели Л Формуляры _И Отчеты Справочники 1 1 Выход Рис. 14.36. Запуск приложения Библиотека 2. Введите в поле Заголовок приложения (Application Title) текст: Библиотека.

3. В поле Строка меню (Menu Bar) выберите в списке пункт Главное меню.

Подведение итогов 4. В поле Вывод формы/страницы (Display Form/Page) выберите форму Кнопочная форма.

5. Снимите все флажки.

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

6. Закройте окно Параметры запуска и закройте приложение Access.

7. Откройте снова файл Библиотека.mdb. Теперь ваше приложение после запус ка будет выглядеть как на рис. 14.36.

Чтобы снова получить доступ к стандартным меню и панелям инструментов, запустите приложение, удерживая клавишу Shift.

Pages:     | 1 |   ...   | 4 | 5 | 6 | 7 |    Книги, научные публикации