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

Access 2007

.pdf
Скачиваний:
118
Добавлен:
11.05.2015
Размер:
24 Мб
Скачать
☆

4.Если ваша кнопочная форма полностью исключает необходимость применения области переходов, найдите под заголовком Переходы (Navigation) и сбросьте флажок рядом с параметром Область переходов (Display Navigation Pane).

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

Подсказка

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

Альтернативы кнопочной формы

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

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

Пользовательские кнопочные формы

Простейший и самый неотразимый вариант — построение собственной кнопочной формы вручную и затем превращение ее в стартовую форму для вашей БД.

Посмотрите на форму, показанную на рис. 14.14 и отображающую те же кнопки переходов, что и кнопочная форма на рис. 14.10, но с изрядной порцией современного стилевого оформления. На этой кнопочной форме отображено чистое, ничем не занятое пространство, наряду с привлекательной графикой. Она также содержит несколько обычных элементов управления, Кнопок, созданных Мастером кнопок (см. разд. "Выполнение действий с помощью кнопок" главы 13). В свойстве всех кнопок Тип фона (Back Style) задано значение Прозрачный (Transparent), чтобы придать им более современный плоский внешний вид, В свойстве Указатель при наведении (Cursor On Hover) задано значение Указатель на гиперссылку (Hyperlink hand), так что пиктограмма указателя мыши меняется на руку с поднятым указательным пальцем, когда мышь перемещается по кнопке, и тем самым дает знать, что в этом месте можно щелкнуть кнопкой мыши.

Примечание

Другой вариант — использование изображения как фона для всей формы и расположение других элементов управления поверх него. Для этого нужно задать следующие свойства формы: Рисунок (имя файла с изображением, которое хотите выводить), Мозаичное заполнение (повторять вывод изображения для заполнения всего доступного пространства или нет), Выравнивание рисунка (используйте значение Сверху слева, так чтобы рисунок начинался в левом верхнем углу формы) и Масштабы рисунка (используйте значение Обрезать, тогда рисунок не растягивается, не масштабируется и не искажается никаким другим образом). Все элементы управления с фоновым

481

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

Проверьте страницу "Missing CD" на Web-сайте www.missingmanuals.com, чтобы посмотреть экранный образец (интерактивное анимационное руководство), демонстрирующий создание пользовательской кнопочной формы, показанной на рис. 14.14.

PИC. 14.14. Эта пользовательская кнопочная форма — обычная форма с множеством кнопок переходов. Преимущество разработки собственной кнопочной формы заключается в том, что вы можете делать все так, как вам нравится. Недостаток в том, что потребуется больше усилий для ее обновления, если изменяется БД. При каждом добавлении новой формы придется изменять проект кнопочной формы, чтобы можно было использовать новую форму

Составные формы

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

В главе 13 рассказывалось о том, как элемент управления Подчиненная форма позволяет отображать связанные данные (такие как перечень товаров, входящих в текущую категорию товаров). Но применять подчиненную форму имеет смысл и для отображения нескольких несвязанных таблиц в одном месте. Просто оставьте пустыми свойства подчиненной формы Основные поля и Подчиненные поля — в этом случае подчиненная форма отображает все записи без фильтрации. На рис. 14.15 показан пример.

Подсказка

Существует метод, ускоряющий создание составной формы. Сначала выберите на ленте Создание → Формы → Конструктор форм для создания пустой новой формы. Найдите форму,

482

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

Рис. 14.15. Эта составная форма — пульт управления "все в одном" для добавления и просмотра товаров и просмотра списка клиентов. Подготовленные и включенные в состав программы Access шаблоны часто используют составные формы для размещения нескольких связанных задач редактирования в одном месте

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

Отображение всех форм в списке

Это последнее средство может оказаться полезным при разработке пульта управления переходами. Вместо создания кнопок для всех форм, которые хотите использовать, можно создать

483

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

Примечание

Этот метод работает так же хорошо с отчетами, как и с формами.

Первый шаг — включение в список имен форм. Программа Access позволяет сделать это тремя способами.

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

Примечание

См. более подробную информацию о мастере создания списка в разд. "Переходы с помощью

списков" главы 13. Только помните о том, что в конце работы мастера нужно выбрать вариант Запомнить значение. Ваш список применяется для переходов, а не для редактирования

записей.

■Извлечение имен из пользовательской таблицы, созданной вами. Создайте новую таблицу и заполните ее именами форм, которые хотите включить в список. Затем в процессе создания Поля со списком выберите переключатель Объект "поле со списком" будет использовать значения из таблицы или запроса и задайте вашу пользовательскую

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

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

— это таблицы, которые программа Access применяет для отслеживания объектов БД. У каждой БД, созданной Access, есть такие таблицы, скрытые от глаз.

Первые два варианта просты. Третий — более впечатляющий, но требует немного больше работы. Обычно системные таблицы скрыты от глаз. Отобразить их можно (рис. 14.16), установив флажок Показывать системные объекты в окне Параметры переходов. Надолго оставлять их видимыми не стоит, т. к. любое изменение в них может повредить вашу БД и озадачить программу Access.

Системные таблицы можно использовать и не выводя на экран. Самая интересная системная таблица — MsysObjects, в которой перечислены все объекты БД. Можно получить список всех форм вашей БД, создав запрос к этой таблице с помощью SQL-команды (см. в разд. "Режим SQL" главы 6 информацию об использовании в запросах языка SQL). Поле Name содержит имена объектов БД, поле Туре — числовой код, обозначающий тип объекта. В табл. 14.1 приведены типы, которые могут вас заинтересовать.

Таблица 14.1. Коды полезных типов

 

 

 

 

 

 

Объект

Тип

Объект

Тип

 

 

 

 

Таблица (Table)

1

Форма (Form)

-32 768

 

 

 

 

Запрос (Query)

5

Отчет (Report)

-32 764

 

 

 

 

484

Рис. 14.16. В области переходов отображается группа системных таблиц, которые обычно скрыты. Их можно открыть и просмотреть, но трудно понять смысл содержащихся в них данных (большей частью числовых)

На основе этих данных можно получить список форм — извлечь поле Name, а затем отобрать записи со значением типа -32 768.

Легче всего реализовать описанную логику в элементе управления Список, добавив список на форму и пропустив мастер создания списка (нажмите клавишу <Esc>, когда мастер запустится). Затем элемент управления можно настроить с помощью Окна свойств. На вкладке Данные найдите свойство Источник строк и введите следующую SQL-команду, которая выполнит нужный запрос:

SELECT Name FROM MSysObjects WHERE MSysObjects.Type=-327 68

Теперь у вас есть список, отображающий все формы вашей БД. Можно заменить число - 32 764 числом -32 768 и получить все отчеты. На рис. 14.17 показан результат.

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

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

485

Рис. 14.17. В данной форме отображен список всех доступных отчетов

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

1.Поместите кнопку на вашу форму.

Расположите ее рядом с элементом управления Поле со списком. Запустится Мастер кнопок.

2.Выберите категорию Работа с отчетами и действие Открыть отчет, а затем щелкните мышью кнопку Далее.

Если вы отображаете список форм, выберите категорию Работа с формами и действие

Открыть форму.

3.Выберите любой отчет или форму и щелкните мышью кнопку Далее. Неважно, какой объект вы выберите, поскольку эту часть вы измените позже.

4.Завершите мастер.

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

Когда мастер завершил работу, самое время внимательнее взглянуть на кнопку в Окне

свойств.

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

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

6.Найдите событие Нажатие кнопки (OnClick) и щелкните мышью в поле свойства, в котором выводится строка [Внедренный макрос] ([Embedded Macro]).

В углу поля появляется кнопка с многоточием (...).

486

7. Щелкните мышью многоточие для редактирования макроса.

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

Рис. 14.18. Вы узнаете об этом окне гораздо больше в главе 15. Сейчас вам нужно знать лишь то, что у данного макроса единственная макрокоманда (представленная одной строкой в табличной сетке). Эта макрокоманда открывает отчет (на что указывает значение ОткрытьОтчет в столбце Макрокоманда)

8.В разделе Аргументы макрокоманды найдите свойство Имя отчета (или Имя формы).

Замените его значение выражением =MyList.Value.

Это выражение находит поле со списком и извлекает выделенное в данный момент значение. Предполагается, что поле со списком названо My List. Если нет, измените выражение соответствующим образом. (Если вы не помните имени вашего поля со списком, выделите элемент щелчком кнопки мыши и посмотрите, какое имя выводится в раскрывающемся списке в верхней части Окна свойств.)

9.Закройте окно макроса и ответьте Да на предложение сохранить изменения. Вы вернетесь в окно Конструктора формы.

10.Перейдите в Режим формы и проверьте магические свойства вашего нового списка.

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

487

Ссылки на связанные данные

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

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

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

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

Отображение связанных записей в отдельной форме

В главе 13 вы узнали, как элемент управления Подчиненная форма может отображать связанные записи в одном месте. Но подчиненные формы не всегда предоставляют достаточно места для работы. В зависимости от способа обработки и величины объема реальной информации, с которой вы сталкиваетесь, возможно, вы предпочтете отображать подчиненные записи в другом месте. Можно добавить на форму кнопку, которая раскрывает другую форму со связанными записями. Для реализации этого метода во второй форме применяется фильтрация для отображения только подчиненных записей. На рис. 14.19 и 14.20 показан пример из БД Cacophone Studios.

Формы, представленные на рис. 14.19 и 14.20, можно создать без особых усилий. Немного сложнее обстоит дело с кнопкой See Students in this Class.

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

1.Откройте родительскую форму.

В данном случае начните с формы Classes.

2.На вкладке ленты Конструктор щелкните кнопкой мыши пиктограмму Кнопка. Нарисуйте кнопку на вашей форме.

Запустится Мастер кнопок.

3.Выберите категорию Работа с формой и действие Открыть форму и щелкните мышью кнопку Далее.

На следующем этапе мастер отобразит все формы в вашей БД.

488

Рис. 14.19. Форма Classes выводит на экран список классов. Щелкните мышью кнопку See Students in this Class (просмотреть список студентов этого класса) для открытия второй формы (рис. 14.20)

Рис. 14.20. Форма StudentEnrollments (список студентов) содержит студентов только одного класса

489

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

Вданном случае выберите форму StudentEnroIlments.

5.Выберите переключатель Открыть форму и показать все записи и затем щелкните мышью кнопку Далее.

Этот пункт кажется немного странным — разве вы не собирались отображать только связанные записи из таблицы StudentEnrollments? Конечно, да. Но, к сожалению, Мастер кнопок не может помочь — в этой области у него существенная ошибка, мешающая создать правильное условие отбора. Поэтому вам придется проделать немного больше работы, определив самостоятельно условие отбора записей.

6.Введите какой-нибудь текст и выберите рисунок.

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

7.Задайте имя кнопки и щелкните мышью кнопку Готово.

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

Примечание

Макрос — это список действий, которые вы хотите заставить выполнить программу Access. В следующей главе будут подробно рассмотрены макросы. А сейчас у вас достаточно знаний для создания нужной вам кнопки.

8.Если на экране нет Окна свойств, выберите на ленте Инструменты конструктора форм | Конструктор → Сервис → Страница свойств (Form Design Tools | Design → Tools → Property Sheet).

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

10.В Окне свойств выберите вкладку События и щелкните кнопкой мыши поле Нажатие кнопки (OnClick).

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

11.Щелкните мышью кнопку с многоточием для открытия окна редактирования макроса.

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

12.В начале списка вы увидите макрокоманду ОткрытьФорму. (Она открывает подчиненную форму при щелчке мышью кнопки.) Выделите ее, щелкнув кнопкой мыши (рис. 14.21).

Когда в макросе выбрана макрокоманда, в разделе Аргументы макрокоманды, расположенном в нижней части окна, появляется набор сведений о ней.

13.Щелкните кнопкой мыши поле Условие отбора (в нижней части окна, в разделе Аргументы макрокоманды) и затем введите ваше выражение для фильтрации записей.

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

490

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]