- •Часть I. Хранение данных в таблицах 34
- •Глава 1. Создание вашей первой базы данных 35
- •Глава 2. Создание более сложных таблиц 66
- •Глава 3. Обработка листа данных: сортировка, поиск,
- •Глава 4. Блокировка неправильных данных 136
- •Глава 5. Связывание таблиц с помощью отношений 168
- •Глава 8. Запросы, обновляющие записи ..272
- •Глава 9. Анализ данных с помощью перекрестных запросов и
- •Часть III. Отчеты 323
- •Глава 10. Создание отчетов 324
- •Глава 11. Проектирование сложных отчетов 356
- •Часть II. Обработка данных с помощью запросов 206
- •Глава 6. Запросы, выбирающие записи 207
- •Глава 7. Основные хитрости, применяемые в запросах 241
- •Часть IV. Разработка пользовательского интерфейса
- •Глава 12. Создание простых форм 392
- •Глава 13. Проектирование сложных форм 426
- •Глава 14. Создание системы переходов 465
- •Часть V. Программирование в access 496
- •Глава 15. Автоматизация задач с помощью макросов 497
- •Глава 16. Автоматизация выполнения задач средствами языка
- •Глава 17. Написание кода с более развитой логикой 571
- •Часть VI. Совместное использование access 615
- •Глава 18. Совместное использование бд несколькими пользователями 616
- •Глава 19. Импорт и экспорт данных 650
- •Глава 20. Подключение Access к sql Server 692
- •Глава 21. Подключение Access к SharePoint 724
- •На профессиональном уровне. Преимущества хорошо спроектированной базы данных
- •Для тех, кто понимает. Когда программы Access недостаточно
- •Уголок ностальгии. Зачем опять изобретать колесо?
- •Уголок ностальгии. Сочетания клавиш в Access 2003
- •Глава 1. Создание вашей первой базы данных
- •Глава 2. Создание более сложных таблиц
- •Часто задаваемый вопрос. Использование чужой бд
- •На профессиональном уровне. Шаблоны, подходящие для разных целей
- •На профессиональном уровне. Работа Access в интерактивном режиме
- •Для тех, кто понимает. Использование Access бд, созданных в более ранних версиях программы
- •На профессиональном уровне. Проектирование бд для начинающих
- •На профессиональном уровне. Вставка больших значений в узкие столбцы
- •Для тех. Кто понимает. Если сомневаетесь, не удаляйте
- •Малоизвестная или недооцененная возможность. Копирование записи целиком за один шаг
- •Малоизвестная или недооцененная возможность. Сжатие бд
- •Часто задаваемый вопрос. У какого файла расширение laccdb?
- •Практические занятия для опытных пользователей. Изменение папки, которую Access использует для хранения бд
- •Малоизвестная или недооцененная возможность. Сворачивание ленты
- •Экономящая время подсказка. Создание ярлыка для таблицы
- •Глава 2
- •Для тех, кто понимает. Изменение типа данных может привести к потере информации
- •На профессиональном уровне. Нормативы максимальной длины
- •На профессиональном уровне. Как Access предотвращает дублирование записей
- •На профессиональном уровне. Почему так важна уникальность
- •Глава 3
- •Малоизвестная или недооцененная возможность. Настройка всех листов данных
- •На профессиональном уровне. Числа и специальные символы в текстовых полях
- •Практические занятия для опытных пользователей. Фильтры в противоположность запросам
- •Малоизвестная или недооцененная возможность. Поиск и замена
- •Глава 4
- •Для тех, кто понимает. Не требуйте слишком многого
- •На профессиональном уровне. Как работают индексы
- •Часто задаваемый вопрос. Индексы и производительность
- •Практические занятия для опытных пользователей. Вставка вашей маски в список масок программы
- •На профессиональном уровне. Создание списка подстановки, использующего другую таблицу
- •Глава 5
- •Часто задаваемый вопрос. Отключение обеспечения целостности данных
- •Для тех, кто понимает. Пользуйтесь каскадным удалением с осторожностью
- •Практические занятия для опытных пользователей. Изменение параметров подтаблицы
- •Часто задаваемый вопрос. Обновление списка
- •Для тех, кто понимает. Применяйте связи "один-к-одному" с осторожностью
- •Часто задаваемый вопрос. Работа со связями "многие-ко-многим"
- •Часто задаваемый вопрос. Печать ваших отношений
- •Для тех, кто понимает. Не бойтесь подстановок
- •На профессиональном уровне. Синтаксис фильтра
- •Практические занятия для опытных пользователей. Как индексы ускоряют поиск
- •Малоизвестная или недооцененная возможность. Запросы на базе запросов
- •Для тех, кто понимает. Подумайте дважды, прежде чем изменять структуру таблиц
- •На профессиональном уровне. Сравнение: отношения и объединения
- •На профессиональном уровне. Изменение данных при использовании запроса с объединением
- •Глава 7
- •На профессиональном уровне. Синхронизация запросов
- •Малоизвестная или недооцененная возможность. Переименование поля в запросе
- •Часто задаваемый вопрос Банковское округление
- •Практические занятия для опытных пользователей. Улучшенные числовые форматы
- •Малоизвестная или недооцененная возможность. Использование случайных чисел для сортировки в случайном порядке
- •Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки
- •Для тех, кто понимает. Вычисления для дат и времени
- •Глава 8
- •Аварийная ситуация. Когда Access блокирует ваше обновление
- •Малоизвестная или недооцененная возможность. Скрытие запроса
- •Глава 9
- •Часто задаваемый вопрос. Итоговый проигрыш; итоговый запрос против перекрестного
- •Для тех, кто понимает. Создание запроса с объединением для лучшей группировки
- •На профессиональном уровне. Правильный выбор групп
- •Малоизвестная или недооцененная возможность. Помещение сводных таблиц в их собственные формы
- •На профессиональном уровне. Выполнение тяжелой работы с помощью запроса
- •Часто задаваемый вопрос. Добавление изображений в отчеты.
- •На профессиональном уровне. Учитесь любить pdf-файлы
- •Часто задаваемый вопрос. Разные способы экспорта данных
- •Малоизвестная или недооцененная возможность. Формат по образцу.
- •Практические занятия для опытных пользователей. Разные линии сетки
- •Глава 11
- •Часто задаваемый вопрос. Ошибки выражений
- •На профессиональном уровне. Поля типа Счетчик в формах
- •На профессиональном уровне. Разные люди — разные формы
- •Малоизвестная или, недооцененная возможность. Вывод на экран изображений из бд
- •На профессиональном уровне. Семейство форм Access
- •Глава 13
- •На профессиональном уровне. Присоединенные элементы управления
- •Малоизвестная или недооцененная возможность. Повторное применение ваших любимых настроек стиля границ
- •Часто задаваемые вопросы. Осовременивание элементов управления Windows
- •Практические занятия для опытных пользователей. Как освободиться от привязки к сетке
- •На профессиональном уровне. Насколько велик ваш экран?
- •Глава 14
- •Малоизвестная или недооцененная возможность. Варианты сортировки и просмотра в области переходов
- •На профессиональном уровне. Кнопочные формы с несколькими страницами
- •За кадром. Меню кнопочных форм сохраняются в бд
- •На профессиональном уровне. Макросы по сравнению с программным кодом
- •Практические занятия для опытных пользователей. Обработка ошибок макроса
- •На профессиональном уровне. Макрокоманды, которым Access не доверяет
- •На профессиональном уровне. ОтправитьОбъект работает с вашей программой элекронной почты
- •Часто задаваемый вопрос. Внедренный макрос
- •Глава 16
- •Малоизвестная или недооцененная возможность. Справка по Visual Basic
- •Для тех кто понимает. Как код связывается с событиями
- •Малоизвестная или недооцененная возможность Разбиение длинных строк кода
- •На профессиональном уровне. Взаимодействие с другими формами
- •Практические занятия для опытных пользователей. Получение нужного цвета
- •Часто задаваемый вопрос. Ленточные формы и неприсоединенные элементы управления
- •Практические занятия для опытных пользователей. Связывание записей с рисунками
- •Глава 17
- •Практические занятия для опятных пользователей. Применение более сложных переменных
- •Практические занятия для опытных пользователей. Применение пользовательских функций в запросах
- •На профессиональном уровне. Алгоритм Луна (Luhn Algorithm)
- •Часто задаваемый вопрос. Запуск других Windows-программ
- •На профессиональном уровне. Станьте знатоком статистических функции по подмножеству
- •Уголок ностальгии. Dао против аdо
- •Для тех, кто понимает. Поиск места в сети для вашей бд
- •На профессиональном уровне Указание местонахождения в сети
- •Часто задаваемый вопрос. Как поведут себя старые версии Aсcess?
- •Аварийная ситуация. Мистическая ошибка “Файл уже используется”
- •Часто задаваемый вопрос. Когда не следует пользоваться форматом accde
- •Уголок ностальгии. Отмирание страниц доступа к данным
- •Практические занятия для опытных пользователей. Разделение таблиц для более безопасных корректировок
- •Уголок ностальгии. Защита с помощью рабочих групп упразднена
- •Глава 19
- •На профессиональном уровне. Sql Server и SharePoint: два частных случая
- •Сберегающая время подсказка. Копирование из одной бд в другую
- •На профессиональном уровне. Опасность дубликатов
- •Малоизвестная или недооцененная возможность. Экспорт отчетов
- •На профессиональном уровне. Более внимательный взгляд на теги
- •Глава 20
- •На профессиональном уровне. Важнейшие причины перехода на sql Server
- •Часто задаваемые вопрос. Можно ли доверять корпорации Microsoft?
- •На профессиональном уровне. Проекты Access по сравнению со связанными таблицами
- •0 Запросах
- •Для тех, кто понимает. Синтаксические различия
- •Глава 21
- •Часто задаваемый вопрос. Путаница, связанная с SharePoint
- •На профессиональном уровне. Установка SharePoint
- •На профессиональном уровне. Пять интересных инструментов программы SharePoint, которые стоит опробовать
- •Малоизвестная или недооцененная возможность.
- •Малоизвестная или недооцененная возможность. Представление таблицы данных Access
- •Малоизвестная или недооцененная возможность. Параметры списков SharePoint
Часто задаваемый вопрос. Ошибки выражений
Почему выражение отображает #Error в режиме предварительного просмотра?
Как ни странно код #Error означает, что в вашем выражении не все правильно. Программа Access пытается вычислить его, попадает в аварийную ситуацию и выводит вместо результата сообщение об ошибке.
Часто легко увидеть наличие проблемы, если вернуться в Конструктор и посмотреть ошибочный элемент управления Поле. Обычно в верхнем левом углу элемента виден зеленый треугольник, сигнализирующий о наличии проблемы. Выделите его, и слева немедленно появится пиктограмма ошибки. Можно поводить указателем мыши поверх пиктограммы, чтобы увидеть описание проблемы, и щелкнуть ее кнопкой мыши для отображения короткого меню возможных способов ее решения, которые можно применить, и вариантов контроля наличия ошибок, способных заставить программу Access игнорировать эту проблему в будущем.
Сообщения об ошибках программы Access известны своей туманностью, поэтому даже когда вы найдете пиктограмму ошибки и получите подробности, реальная проблема может остаться во мраке неизвестности. Для того чтобы вернуть вас на правильную дорогу, предлагаю краткий перечень наиболее распространенных проблем:
вы забыли начать выражение со знака равенства;
вы ошиблись,' набирая имя поля, или сослались на поле, которого нет в базовой таблице или запросе;
вы вставили непарный набор скобок;
у элемента управления Поле то же имя, что и у одного из полей, используемых вами, Если у вас есть выражение =UnitsInStock+UnitsOnOrder и ваш элемент управления Поле назван UnitsInStock, Access приходит в замешательство. Для решения проблемы переименуйте Поле (например в UnitsInStockCalculation) с помощью Окна свойств. (Свойство Имя отображается в верхней части вкладки Все.)
Группировка
Группировка — неоценимое средство для придания смысла большим объемам данных счет упорядочивания их в группах меньшего размера. Затем можно выполнять вычисления в каждой отдельной группе. Рассмотрим список заказов в компании Boutique Fudge. В зависимости от того, как вы сгруппируете данные, можно посмотреть, лучше ли продается шоколадное молоко, чем шоколадное пиво, или сильнее ли клиенты из Нью-Йорка жаждут какао, чем клиенты из Алабамы, и т. д.
Существуют три способа применения группировки для анализа информации в отчете.
■ Применение группировки в запросе. В этом случае в ваш отчет не включаются подробности. Он только отображает вычисленные суммы, средние значения, максимумы или
минимумы. Вам не понадобятся изощренные колдовские приемы создания отчета для решения этой задачи — создайте сводный отчет с группировкой (как описано в разд. "Итоговые данные " главы 7) и затем используйте его для формирования отчета.
Применение группировки в отчете. В этом случае можно разделить информацию большого объема на подгруппы. При этом бы можете видеть все данные и применять промежуточные итоги и другие вычисления. Можно также добавить несколько уровней группировки для выявления глубинных тенденций.
Применение подчиненных отчетов. Этот метод создает тот же эффект, что и группировка в отчете. Единственное отличие — формирование отчета из двух отдельных частей.
Примечание
Подчиненные отчеты — во многом наследие более ранних версий программы Access. В Access 2007 функциональные возможности группировки настолько улучшены, что в подчиненных отчетах больше нет нужды. В данной книге уделяется внимание наиболее эффективному применению группировки, а подчиненные отчеты пропущены.
Группировка в отчетах
Для создания групп выполните следующие действия.
Перейдите в Режим макета или Конструктор.
Выберите поле, которое хотите использовать для сортировки. Обычно следует сортировать таблицу по тому полю, которое планируется применять для группировки.
Если вы хотите группировать по полю ProductCategoryID (идентификатор категории товара), которое формирует отдельную группу товаров для каждой категории, то начать следует с сортировки результатов по полю ProductCategorylD. В этом случае все товары одной группы перечисляются один за другим. (Можно сортировать и но однозначно определяемому полю из связанной таблицы ProductCategories, например, CategoryName. Поскольку у каждой категории товара — свое название, это поле отсортирует товары по группам столь же эффективно.)
Примечание
Если вы создали подстановку, у программы Access хватит сообразительности для использования при сортировке более информативного поля, а не связанного с ним поля. Поле ProductCategoryID использует подстановку, которая выводит на экран название соответствующей категории, а не связанный с ним идентификатор категории, до которого на самом деле никому нет дела. Когда вы щелкните правой кнопкой мыши поле ProductCategoryID и выберите команду сортировки, программа Access применит поле CategoryName для сортировки.
3. Для сортировки данных щелкните правой кнопкой мыши поле, по которому собираетесь сортировать, и выберите команду сортировки (например, Сортировка от А до Я (Sort A to Z) или Сортировка от минимального к максимальному (Sort Smallest to Largest)).
Точное название в меню команды сортировки зависит от типа данных, хранящихся в поле.
4 Щелкните правой кнопкой мыши поле, которое хотите использовать для группировки, и выберите команду Группировка (Group On). Программа Access отсортирует ваши результаты по этому полю и затем сгруппирует их.
На рис. 11.18 и 11.19 показаны два отчета, в которых товары сгруппированы по категориям.
Рис. 11.18. Этот простой табличный отчет отсортирован и сгруппирован по категориям за несколько быстрых щелчков мыши
Подсказка
Когда используется группировка, возможно, нет смысла оставлять заголовки столбцов в разделе макета страницы, т. к. каждый заголовок группы разрывает таблицу. Часто гораздо лучше располагать заголовки столбцов под названием группы так, чтобы они выводились в начале каждой группы (а не в верхней части каждой страницы). На рис. 11.18 применен этот подход (на рис. 11.19 он не нужен, поскольку в отчете вообще не используются заголовки.) К сожалению, для того чтобы применить эту более привлекательную организацию данных, вам придется удалить поля из автоматически создаваемого макета (см. разд. "Удаление полей из макета' ранее в этой главе).
Группировка включает дополнительные разделы в отчет. Если вы группируете с помощью ноля ProductCategoryID, ваш отчет получает новый раздел Заголовок группы 'ProductCategoryID' (ProductCategoryID Header), который программа Access располагает непосредственно над Областью данных (рис. 11.20). Это название группы содержит сведения о группировке — в данном случае, категории товара. В Области данных находятся данные всех записей, включенных в группу.
Примечание
Как вы увидите позже, можно добавлять несколько уровней группировки. В этом случае пса-грамма Access вставляет один заголовок группы для каждого уровня.
Р
ис.
11.19.
Группировка так же хорошо функционирует
и в отчетах со сложными нетабличными
макетами.
Но, возможно, придется потратить немного
больше времени на определение начала
и конца группы, поэтому подумайте о
задании другого цвета фона для разделения
категорий (с помощью свойства Цвет
фона) и
их выделения, как в данном примере. Или
же можно использовать
элемент управления Линия
для
создания разделительной черты в начале
каждой категории.
На рис, 11.20 показан этот отчет в Конструкторе
Тонкая настройка с помощью панели
Группировка, сортировка и итоги
Когда группировка задана, у вас появляются дополнительные возможности:
можно вставить дополнительную сортировку в пределах каждой подгруппы;
можно выполнить сводные вычисления для каждой группы;
можно расставить разрывы страниц в начале каждой новой группы.
Любой из этих вариантов легче всего добавить с помощью панели Группировка, сортировка и итоги (Group, Sort, and Total). Для ее отображения в Конструкторе выберите па ленте Инструменты конструктора отчетов | Конструктор → Группировка и итоги → Группировка и сортировка (Report Design Tools | Design → Grouping & Totals → Group & Sort)
и
ли
в Режиме
макета — Работа с макетами отчетов |
Формат → Группировка и итоги → Группировка
и сортировка (Report
Layout
Tools
| Formatting
→
Grouping
& Totals
→
Group
& Sort).
Рис. 11.20. Конструктор предоставляет самый легкий способ добавления содержимого в раздел заголовка каждой группы. В отчет ProductCatalog можно вставить в раздел Заголовок группы 'ProductCategoryID' дополнительные поля из таблицы ProductCategories (например, поле Description)
П
анель
Группировка,
сортировка и итоги выводится
в нижней части окна программы. На
рис. 11.21 показан примерный вид экрана
при отображении отчета (см. рис. 11.19) с
товарами, сгруппированными по
категориям.
Рис. 11.21. У данного отчета один уровень сортировки (по полю CategoryName в алфавитном порядке) и один уровень группировки (по полю ProductCategorylD). Для отображения дополнительных параметров для каждого уровня выберите его и щелкните мышью кнопку Больше (обведена). На рис. 11.22 показаны параметры группировки, которые можно изменить
Рис. 11.22. Панель Группировка, сортировка и итоги позволяет быстро задать подсчет промежуточных итогов, включение разделов заголовка и примечания и установку разрывов страниц для каждого имеющегося уровня группировки
В следующих разделах описываются функциональные возможности панели Группировка, сортировка и итоги.
Сортировка...
Позволяет выбрать поле, применяемое для сортировки. На рис. 11.21 поля сортируются по полю CategoryName и затем группируются по полю ProductCategorvID.
Группировка ...
Предоставляет возможность задать поле, применяемое для группировки. Этот параметр позволяет моментально включить группировку.
Сортировка от А до Я/от минимального к максимальному
Изменяет порядок сортировки. Точное название параметра зависит от типа данных, можно сортировать текст в алфавитном порядке, числа по возрастанию или убыванию или даты в хронологическом порядке.
По всему значению
Заставляет программу Access создавать индивидуальную группу для каждого отдельного значения в поле группировки. Если вы группируете по полю ProductCategoryID, этот параметр обеспечивает размещение каждой категории товаров в отдельной группе. Иногда подобный подход приводит к созданию слишком большого количества групп, что затрудняет последующий анализ (и расходует груды бумаги). В подобных ситуациях необходимо формировать более крупные группы, включающие больше записей. Если группируются товары по ценам или заказы по датам, возможно, лучше группировать по диапазону значений, как показано на рис. 11.23.
С итогами...
Промежуточные итоги — самое популярное свойство группировки. Они позволяют сравнивать количественно одну группу с другой. Панель Группировка, сортировка и итоги позволяет выполнять вычисления промежуточных итогов любых числовых полей (рис. 11.24).
Рис. 11.23. В случае дат или числовых полей можно выбрать создание группы, включающей целый диапазон значений. В данном примере группы формируются по цене с интервалом 5 долларов. В первую группу включены товары с ценой менее 5 долларов, во вторую — с ценами от 5 до 9.99 долларов и т. д.
В зависимости от того, что вы хотите получить, можно сосчитать количество значений, суммировать их, вычислить средние или определить максимальные и минимальные значения в группе. Эту информацию можно поместить в заголовок, который выводится в начале каждой группы, или в примечание, следующее в конце. В завершение вы можете дополнить отчет финальным общим итогом, который суммирует все промежуточные.
С заголовком...
Щелкните кнопкой мыши эту область для вставки текстового заголовка, который выводится в заголовке категории, в начале каждого раздела категории. Конечно, можно вставить заголовок и без помощи панели посредством добавления элемента управления Подпись в Конструкторе, но этот параметр предоставляет быстрый и удобный способ.
Рис. 11.24. В данном примере список товаров группируется по категории, передняя для каждой категории цена выводится в примечании (обведено)
С разделом заголовка/С разделом примечания
Можно вставить раздел заголовка в начале каждой группы и раздел примечания в конце. После добавления этих разделов в них можно вставить любое содержимое в Конструкторе. Чаще всего их используют для вывода информации, относящейся к группе в целом, отображают промежуточные итоги или рисуют разделительные линии с помощью элемента управления Линия.
Удерживать группу на одной странице
Этот режим позволяет избежать висячих заголовков категорий. В примере с каталогом товаров он гарантирует, что в конце страницы не появится название группы, например Beverages (напитки), а товары группы при этом не перейдут па следующую страницу.
Обычно программа Access не предотвращает неуместные разрывы страницы. Access просто старается заполнить до конца каждую страницу. Если вас это не устраивает, есть два
варианта. Можно выбрать режим обязательного размещения всей группы на одной странице (конечно, при условии, что группа занимает меньше одной страницы) или сохранения на одной странице заголовка группы и, по крайней мере, одной записи, принадлежащей группе,
Панель Группировка, сортировка и итоги не предлагает установить разрыв страницы в начале каждой группы. Для этого необходимо перейти в Конструктор, выбрать раздел заголовка группы и затем выбрать на ленте Страницу свойств в группе Формат, найти параметр Конец страницы. Задать значение До раздела для установки разрыва страницы в начале каждого раздела или После раздела — в конце раздела. (Вы не увидите разницы между этими вариантами, пока в отчете используются заголовок и примечание отчета. Если вы применяете заголовок отчета и используете значение До раздела, разрыв страницы устанавливается между заголовком отчета и первым разделом.)
Примечание
В Режиме макета, Представлении отчета или Конструкторе действие параметра Конец страницы незаметно. Оно отображается только в режиме Предварительный просмотр или при реальной распечатке отчета.
Р
ис.
11.25.
В этом списке посещаемости для создания
распечатки, совсем не похожей на типичный
отчет, применяется несколько приемов,
о которых вы узнали в данной главе. Отчет
выводит список студентов, сгруппированных
по классам. В отчете нет заголовка, а
в заголовок группы для каждого класса
вставлено несколько ключевых данных
из таблицы Classes.
Благодаря
установке разрывов страниц список
каждого класса начинается с новой
страницы и за данными о каждом студенте
следует строка нарисованных от руки
элементов управления Прямоугольник,
в
которых можно отмечать посещаемость
Рис. 11.27. В данном отчете информация заказа преобразуется в подготовленный для печати счет с помощью группировки и еще нескольких приемов, которые вам уже знакомы. Исходная информация извлекается из таблицы OrderDetails (дополненная данными из таблиц Orders, Product и Customer). Элементы управления Линия отделяют разные разделы счета, автоматически генерируемые итоги сообщают вам общую стоимость заказа, в выражениях комбинируется несколько полей и дополнительные текстовые фрагменты (например, "Order History for" (сведения о сделанных заказах) и "Order #" (номер заказа)). Данный пример включен в БД Boutique Fudge с загружаемым из Интернета содержимым, иллюстрирующим материал данной главы
Если у вас несколько уровней группировки, некоторую информацию можно скрыть, так чтобы отображались только сводные данные. В Режиме макета просто выберите Работа с макетами отчетов | Формат → Группировка и итоги → Без подробностей (Report Layout Tools | Formatting → Grouping & Totals → Hide Details). Если применить этот прием к примеру, показанному на рис. 11.27, программа Access скроет построчное содержание заказа, и вы увидите лишь общую стоимость каждого заказа.
Подсказка
В примере со счетами создается отчет, печатающий счета для всех заказов вашей БД. Но вы можете воспользоваться фильтрацией (см. разд. "Фильтрация" главы 3) для отбора результатов для конкретного заказа или определенного клиента.
Часть IV
Разработка пользовательского интерфейса с помощью форм
Глава 12. Создание простых форм
Глава 13. Проектирование сложных форм
Глава 14. Создание системы переходов
Глава 12
Создание простых форм
Итак, вы научились создавать таблицы, хранящие наши данные, запросы, извлекающие их, и отчеты, подготавливающие данные к печати. Вы также создавали запросы на изменение, автоматизирующие обновления большого объема информации. Но реальные пользователи вашей БД (вы или кто-нибудь другой) будут тратить большую часть времени на совершенно другую работу: ежедневное обслуживание БД.
Эта работа включает просмотр, редактирование и вставку информации. В реальных БД этот процесс идет непрерывно. Ежедневно сотрудники компании Cacophone Studios добавляют новых студентов, отдел обслуживания клиентов компании Boutique Fudge помещает новые заказы, а устроители средневековой свадьбы компании Gothic Wedding уточняют план рассаживания гостей за праздничным столом. Куклы-болванчики покупаются, адреса меняются, покупки регистрируются, тестовые результаты фиксируются, и ваши данные растут и эволюционируют.
Ежедневное техническое обслуживание БД можно проводить на листе данных (см. главу 3), но это не самый легкий способ. Несмотря на то, что лист данных содержит множество информации на ограниченном пространстве, его обычно трудно использовать, особенно новичкам, недавно работающим в программе Access. Лучшее решение — формы: специализированные объекты БД, облегчающие просмотр и редактирование информации в таблице.
Примечание
Помните о том, что при использовании программы Access в деловой среде разные люди пользуются вашей БД. Вы можете создать ее, но другим пользователям нужно иметь возможность применять ее для выполнения разнообразных задач — как правило, ввода данных и поиска сведений. Эти пользователи могут не так хорошо, как вы, знать программу Access.
Основные сведения о формах
Формы получили свое название от бумажных форм, которые заполняются людьми, когда под рукой нет компьютера. В зависимости от ситуации вы можете создавать в программе Access форму, которая напоминает форму, применяемую вашей компанией или организацией. Если вы работаете в банке, вы можете создать в Access форму, которая воспроизводит информацию, организованную так же, как в бумажной форме, применяемой клиентами. Такая организация данных облегчает копирование информации с бумаги в вашу БД. Но в большинстве случаев проектируемая вами форма не имеет аналога в реальной жизни. Такие формы создаются с нуля и используются для облегчения ввода данных.
Для того чтобы понять, почему формы — неотъемлемая часть почти всех БД, полезно рассмотреть слабые места листа данных. Далее перечислены некоторые характеристики, делающие формы предпочтительнее листов данных.
Улучшенная компоновки. На листе данных каждое поле занимает единственный столбец. Такая организация хороша для таблиц с небольшим числом столбцов. Если же таблица широка, она приводит к бесконечным прокруткам, необходимым для переходов к разным частям таблицы. В форме есть гарантия того, что нужные данные всегда находятся в поле зрения. Можно также использовать цвет, линии и изображения для разделения разных фрагментов содержимого.
Дополнительная информация. Вы можете включить в форму любой нужный вам текст, т. е. можно вставить пояснения, подсказывающие новичкам, какие данные следует предоставить. Можно также добавить вычисляемые данные — например, вычислить и отобразить стоимость всех покупок, сделанных клиентом, без необходимости создания кем-то отдельного запроса.
Связи таблиц. Во многих задачах требуется добавление записей в несколько связанных таблиц. Если новый клиент размещает заказ в БД Boutique Fudge, необходимо создать новую запись в таблицах Customers и Orders, а также одну или несколько записей в таблице OrderDetails. Форма позволяет выполнить всю эту работу в одном месте (при этом не нужно открывать два или три листа данных).
■ Кнопки и другие графические элементы. Формы поддерживают элементы управления: кнопки, ссылки, списки и другие полезные элементы пользовательского интерфейса, которые можно вставлять в форму. Пользователь, работающий с вашей БД, сможет впоследствии щелкнуть мышью кнопку и запустить связанную с ней задачу (например, открыть другую форму или напечатать отчет).
Хорошо спроектированные формы — то, что компьютерные асы называют внешним представлением (front end) БД. В БД, применяющей формы, можно редактировать данные, выполнять поиск и обеспечивать выполнение повседневных задач, не касаясь листа данных.
Создание простой формы
Как и в случае отчетов, программа Access предоставляет легкий и довольно развитый способ создания формы. Он позволяет создать действующую форму, основанную на таблице или запросе. Внимательный читатель может заметить, что этот процесс в той или иной степени подобен процессу генерации простого отчета. Далее описано его применение.
1. В области переходов выберите таблицу или запрос, которые хотите использовать для генерации формы.
Попробуйте применить таблицу Products из БД Boutique Fudge.
Примечание
Если форма создается для родительской таблицы, связанной с другими таблицами, в результате вы будете иметь дело с несколько иным типом формы. Если создается форма для таблицы Categories (родительской для таблицы Products), вы получите в итоге двухчастную форму, позволяющую просматривать и изменять записи категорий и связанные записи товаров в каждой категории. Подробнее применение форм со связанными таблицами рассматривается в главе 13.
2
.
Выберите на ленте Создание
→
Формы →
Форма (Create
→
Forms
→
Form).
На экране появляется новая вкладка с формой в Режиме макета. В простой форме одновременно отображается одна запись с выводом каждого поля в отдельной строке (рис. 12.1). Если в вашей таблице много полей, программа формирует несколько столбцов (рис. 12.2).
Рис. 12.1. В этой простой форме для таблицы Products уже присутствует разумная основа. Программа Access применяет поля ввода для всех текстовых полей, раскрывающийся список для полей с подстановкой (в данном примере поле ProductCategoryID) и флажок для всех полей с данными логического типа (например, поле Discontinued). В ней некоторые поля (например, Description) больше других, поскольку программа замечает, что у лежащего в основе поля таблицы допустимая длина больше максимально допустимой
Подсказка
Хорошие навыки проектирования очень пригодятся, когда вы начнете создавать формы. Если ваши тестовые поля созданы в расчете на хранение большего числа символов, чем им требуется (в соответствии со значением свойства Размер поля, описанного в разд. "Длина текста"
главы 2), форма будет содержать огромные поля ввода, съедающие значительное пространство. Придется изменять их размер вручную.
Р
ис.
12.2. В
данной форме для таблицы Customers
программа
Access
не может разместить все
поля с помощью обычной компоновки,
отводящей
одну строку для каждого поля. В место
этого добавлен еще один столбец
Когда форма создается впервые, программа Access располагает поля сверху вниз в том порядке, в каком они определены в таблице. Реорганизация полей на листе данных не играет никакой роли. Но программа не отображает в форме все столбцы, скрытые на листе данных (см. разд. "Скрытие столбцов " главы 3).
Подсказка
Вставляются поля в форму и удаляются из нее точно так же, как в отчете. Если окно Список полей не открыто, выберите на ленте Работа с макетами форм | Формат → Элементы управления → Добавить поля (Form Layout Tools | Formatting → Controls → Add Existing Fields). Затем перетащите в форму с помощью мыши нужное поле из окна Список полей. Для удаления поля щелкните его кнопкой мыши и нажмите клавишу <Delete>. Но помните о том, что часто формы применяются для добавления записей, и если вы хотите сохранить такую возможность, нужно, чтобы в вашей форме присутствовали все поля, необходимые таблице.
3. Расположите поля на форме, как хотите, перетащив их мышью в нужное место.
Несмотря на то, что простые формы выглядят иначе, нежели простые отчеты, с которыми вы познакомились в главе 10, работать с ними можно почти так же, как с отчетами. Самый легкий способ компоновки формы — перемещение полей из одного места в другое с помощью мыши (рис. 12.3).
4. Измените ширину столбцов.
Когда новая форма создается в Режиме макета, программа Access делает все поля достаточно широкими.
Р
ис.
12.3. Для
перемещения поля перетащите его с
помощью мыши в другое место. Программа
Access
переместит остальные поля соответственно.
В данном примере поле Price
переносится в
верхнюю часть формы непосредственно
под поле ProductName.
Access
отодвигает все остальные поля вниз для
того, чтобы освободить место
Рис. 12.4. Увеличивается высота поля Description для размещения в нем большего числа строк. Можно также сделать поле уже или шире, но есть опасность — подобные действия влияют на весь столбец. В данной форме для таблицы Products у всех полей одинаковая ширина
Как правило, нужно сжать их для создания более компактной формы. Кроме того, длинные строки текста трудно читать, поэтому лучше отображать информацию большого объема в более узком и высоком текстовом поле.
Для этого выделите соответствующее поле щелчком кнопки мыши, вокруг него появится прямоугольный контур желтого цвета. Затем перетащите мышью одну из его сторон. На рис. 12.4 показан этот процесс в действии.
Примечание
Возможно, вам потребуются изменения, которые нельзя выполнить с помощью перетаскивания мышью, например, добавление нового столбца или задание разной ширины полей. Для внесения таких изменений необходимо понять, что такое макеты, описанные в разд. "Создание улучшенных макетов" далее в этой главе.
5. Если необходимо, можно щелкнуть кнопкой мыши имя поля и отредактировать его текст.
Эта возможность позволит изменить имя ProductCategoryID просто на Category.
6. При желании можно изменить форматирование для того, чтобы сделать форму более привлекательной, сменив гарнитуру и цвет шрифта.
Быстрее всего изменить формат вашей формы, если выбрать соответствующую часть (щелчком кнопки мыши) и использовать кнопки в группе ленты Работа с макетами форм | Формат → Шрифт (FontForm Layout Tools | Formatting → Font). Эту группу ленты можно также применять для настройки отображения программой Access числовых значений. Вы познакомились со всеми возможными вариантами форматирования в разд. "Форматирование столбцов и заголовков столбцов" главы 10, когда создавали базовые отчеты.
Часто возникает необходимость иначе отформатировать определенные поля для того, чтобы выделить важную информацию. Можно также задать формат заголовка формы, раздела заголовка и фон формы. На рис. 12.5 показан пример разумного форматирования полей.
Подсказка
Для одновременного выбора нескольких фрагментов формы держите нажатой клавишу <Ctrl>, когда щелкаете их кнопкой мыши. Этот прием позволяет задать одинаковое форматирование одновременно для нескольких частей.
Если торопитесь (или сомневаетесь в стилистическом оформлении), можно применить отличное средство Access, названное Автоформат, для внесения целого набора связанных изменений. Просто выберите вариант из группы ленты Работа с макетами форм | Формат → Автоформат (Form Layout Tools | Formatting → AutoFormat) (в которую включены те же варианты, которыми вы пользовались при оформлении отчетов).
7. Сохраните форму.
Форму можно сохранить в любой момент, если выбрать кнопку Office → Сохранить (Office → Save). Если вы закроете форму без сохранения, программа Access в этот момент предложит вам сохранить ее.
Рис. 12.5. Имя поля (например, Price) и поле со значением можно выделить по отдельности, что означает возможность различного форматирования этих компонентов. В этой форме задан затененный фон для полей Price, UnitsinStock и UnitsOnOrder. Кроме того, у поля Price и его имени увеличен размер шрифта, что позволяет выделить содержащуюся в них информацию
