Выбор базовых таблиц для запроса
1. Создание запроса к базе начинается с открытия вкладки Запросы диалогового окна База данных и щелчка на кнопке Создать.
2. В открывшемся диалоговом окне Новый запрос задают ручной режим создания запроса выбором пункта Конструктор.
3. Создание запроса в режиме Конструктора начинают с выбора тех таблиц базы, на которых будет основан запрос.
4. Выбор таблиц выполняют в диалоговом окне Добавление таблицы. В нем отображаются все таблицы, имеющиеся в базе.
5. Выбранные таблицы заносят в верхнюю половину бланка запроса по образцу щелчком на кнопке Добавить.
6. В окне Добавление таблицы обратите внимание на наличие трех вкладок: Таблицы, Запросы, Запросы и таблицы. Они говорят о том, что запрос не обязательно основывать только на таблицах. Если ранее уже был создан запрос, то новый запрос можно основывать и на нем. Какие именно таблицы использовать в качестве базовых, решает сам создатель запроса.
Заполнение бланка запроса по образцу
Бланк запроса по образцу — удивительно изящное и удобное средство создания запросов.
1. Бланк запроса по образцу имеет две панели. На верхней панели расположены списки полей тех таблиц, на которых основывается запрос.
2. Строки нижней панели определяют структуру запроса, то есть структуру результирующей таблицы, в которой будут содержаться данные, полученные по результатам запроса.
3. Строку Поле заполняют перетаскиванием названий полей из таблиц в верхней части бланка. Каждому полю будущей результирующей таблицы соответствует один столбец бланка запроса по образцу.
4. Строка Имя таблицы заполняется автоматически при перетаскивании поля.
5. Если щелкнуть на строке Сортировка, появится кнопка раскрывающегося списка, содержащего виды сортировки. Если назначить сортировку по какому-то полю, данные в результирующей таблице будут отсортированы по этому полю.
6. Бывают случаи, когда поле должно присутствовать в бланке запроса по образцу, но не должно отображаться в результирующей таблице. В этом случае можно запретить его вывод на экран, сбросив соответствующий флажок.
7. Самая интересная строка в бланке запроса по образцу называется Условие отбора. Именно здесь и записывают тот критерий, по которому выбирают записи для включения в результирующую таблицу. По каждому полю можно создать свое условие отбора. В нашем примере назначены два условия отбора: повесу игрока (более 80 кг) и по росту (менее 190 см).
8. Запуск запроса выполняют щелчком на кнопке Вид. При запуске образуется результирующая таблица.
9. Чтобы выйти из результирующей таблицы и вернуться к созданию запроса в бланке запроса по образцу, нужно еще раз щелкнуть на кнопке Вид.
Зачем нужен флажок Вывод на экран?
Возникает один закономерный вопрос. Зачем нужен флажок Вывод на экран? Если содержимое поля не надо выводить на экран, то, может быть лучше вообще не включать это поле в бланк запроса по образцу?
Случаи, когда присутствие поля в бланке необходимо, обычно связаны с использованием этого поля для сортировки. Но если при этом сведения в данном ноле конфиденциальные, то поле скрывают.
В студии, занимающейся прокатом видеокассет, посетителям могут предложить для просмотра базу видеофильмов, отсортированную в порядке убывания популярности. Чем чаще кассету берут в прокат, тем выше она находится в общем списке.
Но если владелец студии не желает, чтобы любой посетитель мог точно узнать, как часто берутся в прокат те или иные кассеты, то поле, по которому выполнена сортировка, делают скрытым.
Запросы с параметром
4 место
jГермания . Югославия Уругвай Болгария
Выше мы рассмотрели работу запроса, выбирающего вратарей футбольных клубов, чей рост меньше заданного, а вес больше заданного. И максимальный рост, и минимальный вес были жестко введены в бланк запроса по образцу, и обычный пользователь базы, не имевший отношения к ее созданию, не может изменить эти параметры.
Во многих случаях пользователю надо предоставить возможность выбора того, что он хочет найти в таблицах базы данных. Для этого существует специальный вид запроса — запрос с параметром.
Предположим, что в базе данных есть таблица, в которой содержатся все результаты чемпионатов мира по футболу. Наша задача — создать запрос, с помощью которого пользователь может определить, в каком году та или иная команда занимала первое место, причем выбор этой команды - его личное дело.
Для этой цели служит специальная команда языка SQL, которая выглядит так: LIKE [...]
В квадратных скобках можно записать любой текст, обращенный к пользователю, например:
LIKE [Введите название страны]
1. Команду LIKE надо поместить в строке Условие отбора и в том поле, по которому производится выбор. В нашем случае это столбец сборных, занимавших первые места в чемпионатах мира по футболу.
2. После запуска запроса открывается диалоговое окно, в котором пользователю предлагается ввести параметр.Если в качестве параметра ввести слово Бразилия, то выдается результирующая таблица, содержащая записи по тем чемпионатам, когда сборная Бразилии становилась чемпионом.
Если в качестве параметра ввести слово Италия, то результирующая таблица будет иной.
Разумеется, в нашей небольшой таблице и без запроса нетрудно найти сборные, занимавшие призовые места. Но без запроса не обойтись, если в базе содержатся сотни тысяч записей, причем расположенные в разных таблицах.
Вычисления в запросах
Поле, содержимое которого является результатом расчета по содержимому других полей, называется вычисляемым полем.
Вычисляемое поле существует только в результирующей таблице. В исходных (базовых) таблицах такое поле не создается, и при работе обычного запроса таблицы не изменяются. Неправда ли, это очень разумно? Каждый, кто обращается к базе, может с помощью запросов как угодно манипулировать данными и получать любые результаты, но при этом исходные таблицы остаются неизменно одинаковыми для всех пользователей.
1.
Д ля создания запроса, производящего вычисления, служит тот же самый бланк запроса по образцу. Разница только в том, что в одном из столбцов вместо имени поля записывают формулу. В формулу входят заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций, например, так:
Стоимость:[Количество]*[Цена]
2. В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш SHIFT+F2, то открывается вспомогательное диалоговое окно, которое называется Область ввода. В нем можно ввести сколь угодно длинную формулу, а потом щелчком на кнопке ОК перенести ее в бланк запроса по образцу.
3. Если включить отображение вычисляемого поля, результаты расчетов будут выдаваться в результирующей таблице.
4. Ничто не мешает сделать вычисляемое поле полем сортировки, чтобы не только получать новые результаты, но и анализировать их.
Итоговые запросы
Запросы позволяют не только отбирать нужную информацию из таблиц и обрабатывать ее путем создания новых (вычисляемых) полей, но и производить так называемые итоговые вычисления.
Примером итогового вычисления может служить сумма всех значений в какой-то группе записей или их среднее значение, хотя кроме суммы и среднего значениясуществуют и другие итоговые функции.
Поскольку итоговые функции для одной записи не имеют смысла и существуют только для группы записей, то предварительно записи надо сгруппировать по какому-либо признаку.
1. Рассмотрим работу салона, занимающегося продажей подержанных автомобилей. Результаты работы салона за последнююеделю содержатся в таблице. В ней можно выделить несколько групп по разному признаку. Записи можно сгруппировать по моделям автомобилей (ВАЗ - отдельно и БМВ - отдельно)или по году выпуска (1989, 1993 и т. д.). Для каждой из групп можно провести итоговое вычисление по полю Цена.
2. Итоговые запросы создают на основе известного нам бланка запроса по образцу, только теперь в нем появляется дополнительная строка — Группировка.
3.
Д ля введения этой строки в бланк надо щелкнуть на кнопке Групповые операции на панели инструментов программы Access .
Далее все происходит очень просто.
4. В тех полях, по которым производится группировка, надо установить (или оставить) функцию Группировка.
5. В тех полях, по которым следует провести итоговое вычисление, надо в строке Группировка раскрыть список и выбрать одну из нескольких итоговых функций.
6.
Щ елчок на кнопке Вид или Запуск запускает запрос и выдает результирующую таблицу с необходимыми итоговыми данными.
7.
В строке Группировка можно указать лишь одну итоговую функцию. А как быть, если надо найти и сумму, и среднее, и максимальное значение, и еще что-то? Решение простое: одно и то же поле можно включить в бланк запроса по образцу несколько раз.
Запросы на изменение
Выше мы говорили о том, что все виды запросов на выборку создают временные результирующие таблицы. Базовые таблицы при этом не изменяются. Тем не менее, специально для разработчиков баз данных существует особая группа запросов, которые называются запросами на изменение. Они позволяют автоматически создавать новые таблицы или изменять уже имеющиеся. Логика использования запросов на изменение такая:
· создается запрос на выборку, который отбирает данные из разных таблиц или сам создает новые данные путем вычислений;
· после запуска запроса образуется временная результирующая таблица;
· данные из этой временной таблицы используют для создания новых таблиц или изменения существующих.
Существует несколько видов запросов на изменение. Самый простой и понятный — это запрос на создание таблицы. Вернемся к примеру с расчетом среднего количества забитых мячей.
1. Предположим, что разработчик таблицы Итоги по командам захотел включить в нее поле Результативность. Конечно, он может рассчитать среднее количество мячей, забитых за игру каждой командой, но если ввести в таблицу такое поле, то его придется заполнять его вручную. Для таблиц, содержащих много записей, это решение неприемлемо.
2. Проще создать запрос на выборку, в который войдут все поля базовой таблицы плюс новое вычисляемое поле.
3. Щелчок на кнопке Вид позволяет убедиться, что запрос работает как положено и создает результирующую таблицу, более полную чем базовая. Теперь можно дать команду на создание новой базовой таблицы, равной результирующей.
4. Эта команда находится в меню Запрос, которое доступно только в режиме Конструктора.
5. В том же меню присутствуют команды для создания запросов на обновление данных, на добавление записей и на удаление записей. Все они относятся к запросам на изменение и работают аналогично, изменяя базовые таблицы в соответствии с данными результирующих таблиц.
Формы
Обычно разработчик базы данных создает структуру таблиц и запросов, но заполнением таблиц информацией он не занимается. Для этого есть специальные кадры (обычно малоквалифицированные), выполняющие функции наборщиков. Для упрощения их труда разработчик базы может подготовить специальные объекты —формы.
Форма представляет собой некий электронный бланк, в котором имеются поля для ввода данных. Наборщик вводит данные в эти поля, и данные автоматически заносятся в таблицы базы.
Зачем нужны формы?
Данные в таблицу можно вносить и без помощи каких-либо форм, но существуют, по крайней мере, четыре причины которые делают формы незаменимым средством ввода данных в базу.
1. Малоквалифицированному персоналу нельзя предоставлять доступ к таблицам (самому ценному из того, что есть в базе) Представьте, что будет, если новичок «наведет порядок» в таблице банка, хранящей расчетные счета клиентов.
2. Разные люди могут иметь разные права доступа к информации, хранящейся в таблицах. Например, один имеет право вводить только имена и адреса клиентов, другой – только номера их расчетных счетов, а третий — только денежные суммы, хранящиеся на этих счетах. Сговор между этими людьми должен быть исключен. Для ввода данных им предоставляют разные формы, хотя данные из форм могут поступать в одну таблицу.
3. Ввод данных в таблицу – чрезвычайно утомительное занятие. Уже после нескольких часов работы люди делают ошибки. Ввод данных в форму проще. Здесь многое можно автоматизировать. К тому же, элементы управления форм настраивают таким образом, чтобы при вводе данных выполнялась их первичная проверка.
4. Информацию для баз данных берут из бумажных бланков: анкет, заявлений, накладных, счетов, описей, ведомостей, справок. Экранные формы можно сделать точной копией бумажных бланков, с которых происходит ввод данных. Благодаря этому во много раз уменьшается количество ошибок при вводе и значительно снижается утомляемость персонала.
Создание форм
Как и другие объекты Access, формы можно создавать вручную или автоматически, причем несколькими способами. При создании таблиц и запросов мы рекомендовали на первых порах автоматическими средствами не пользоваться, чтобы вникнуть в терминологию и подготовить себя к работе с Мастером, задающим непонятные для начинающих вопросы. С формами дело обстоит иначе. Они состоят из многочисленных элементов управления, и от того, насколько аккуратно эти элементы расположены на экране, зависит внешний вид формы.
Автоматические средства позволяют создавать аккуратные формы и не задают пользователю лишних вопросов. Начинать работу лучше с них.
Автоформы
1. Автоформы — самый простой вид автоматических форм. Для создания автоформы надо открыть вкладку Формы в диалоговом окне База данных и щелкнуть на кнопке Создать — откроется окно Новая форма.
2. В диалоговом окне Новая форма выбирают в качестве источника данных для формы какую-либо таблицу или запрос, после чего создают автоформу двойным щелчком в списке выбора вида автоформы (табличная, ленточная или в столбец).
Создание формы с помощью Мастера
1. С помощью Мастера форма создается всего в четыре этапа:
1. выбор полей, данные для которых можно будет вводить в форме;
2. выбор внешнего вида формы (один из четырех);
3. выбор фонового рисунка формы (один из десяти);
4. задание имени формы.
5. Все эти пункты достаточно хорошо объяснены в Мастере и не требуют никаких пояснений.
2. Готовую форму можно сразу же использовать для просмотра существующих записей или для ввода новых.
Панель элементов
Структура форм
Создавая формы автоматическими средствами, можно не задумываться над их структурой, но при разработке формы вручную со структурой приходится иметь дело.
Структуру формы составляют ее разделы, а разделы содержат элементы управления.
Разделы формы
1. Самый простой способ познакомиться с разделами формы состоит в том, чтобы взять готовую форму, например, созданную с помощью Мастера, и посмотреть ее устройство в режиме Конструктора. Как мы уже знаем, для этого надо щелкнуть на кнопке Вид на панели управления Access .
2. При просмотре в Конструкторе мы видим структуру формы. Обратите внимание на то, что рядом с ней открывается панель элементов, содержащая заготовки и инструменты для создания элементов управления формы.
3. В структуре формы четко видны три раздела: раздел заголовка формы, область данных и раздел примечания формы.
В нашем случае заполнена только область данных. Так произошло потому, что форму создавал Мастер, который не потрудился создать и заполнить вспомогательные разделы.
4. Все, что содержится в области данных, является элементами управления, В нашем случае здесь присутствуют элементы управления только двух типов: связанное поле (то, что в него вводится, поступает и в одноименное поле таблицы, на базе которой создана форма) и присоединенная надпись (называется так, поскольку перемещается вместе со своим элементом управления). В нашем случае содержание присоединенной надписи совпадает с названием связанного поля, но, как вы понимаете, это можно и изменить.
5. Фоновый рисунок, лежащий под элементами управления, показывает размер рабочего поля формы.
6. Размеры разделов и размеры рабочего поля формы можно изменять с помощью мыши. При наведении на границу раздела указатель меняет форму. В этот момент границу можно перемещать методом перетаскивания.
Создание надписей
Редактирование форм состоит в создании новых или изменении имеющихся элементов управления, а также в изменении их взаимного расположения.
При рассмотрении приемов создания новых элементов управления мы воспользуемся тем фактом, что Мастер, создавший форму, не заполнил ее раздел заголовка.
1.
2. Перетащив вниз разделительную границу между заголовком и областью данных, мы можем освободить вверху достаточно места для создания крупной надписи.
3. На панели элементов существует специальный элемент управления для создания заголовков, который называется Надпись.
4.
Щелкнув на нем, а потом на форме, мы получаем текстовую рамку, в которую можно вводить произвольный текст. При вводе текста не надо заботиться о его форматировании. Неважно, как он выглядит и где расположен. Закончив ввод, надо нажать клавишу ENTER, после чего можно приступать к оформлению текста.
5. Для форматирования элемента управления его надо сначала выделить. Для этого служит инструмент Выбор объектов.
6. При выделении элемента управления вокруг него образуется рамка с восемью маркерами (по углам и по центрам сторон рамки). Рамку можно растягивать или сжимать методом перетаскивания границ. При наведении на маркер указатель мыши меняет форму, принимая изображение открытой ладони. В этот момент рамку можно перемещать.
7. Особую роль играет левый верхний маркер рамки. При наведении на него указатель мыши принимает форму указательного пальца. О роли этого маркера мы расскажем чуть позже.
8. Когда объект выделен, можно изменять параметры шрифта, метод выравнивания текста и другие элементы форматирования. Это выполняют обычными средствами форматирования, доступными через соответствующую панель инструментов Access.
9. Если щелкнуть на выделенном элементе правой кнопкой мыши, откроется его контекстное меню, в котором имеются дополнительные возможности изменения оформления. В нашем случае, например, применено Оформление с тенью
Создание и редактирование связанных полей
1 .Заголовок таблицы, который мы только что создали, не связан ни с одним из полей таблицы. Поэтому элемент управления Надпись еще называют свободным полем. Текст, введенный в него, остается неизменным независимо от того, какую запись в этот момент просматривают в форме.
2. Совсем иначе обстоит дело с элементами управления, в которых отображается содержимое полей таблицы. Такие элементы управления называют связанными полями.
3. Для их создания служит элемент Поле на панели элементов.
4. При создании связанного поля вместе с ним одновременно образуется еще один элемент управления –присоединенная надпись. Она перемещается вместе со связанным полем и образует с ним единое целое.
5. Обратите внимание на то, что, что слово «Результативность» в присоединенной надписи записано без последней буквы. Это не ошибка. Просто Мастер, создававший форму, сделал это неаккуратно, и связанное поле «наехало» на присоединенную надпись.
6.
Оторвать поле от присоединенной надписи позволяет уже упомянутый маркер, расположенный в левом верхнем углу. При наведении на него указатель мыши принимает форму указательного пальца. В этот момент связанное поле можно оторвать от присоединенной надписи и перемещать отдельно.
Перемещать элементы управления и изменять их размеры с помощью мыши не слишком удобно. Гораздо удобнее использовать для этой цели курсорные клавиши в комбинации с клавишами SHIFT или CTRL. В первом случае происходит изменение размеров элемента управления, а во втором – изменение его расположения.
5. Чтобы элементы управления располагались в форме ровными рядами, существуют специальные команды выравнивания. Сначала надо выделить группу элементов управления с помощью инструмента Выбор объектов (группа выбирается принажатой клавише SHIFT), а потом дать команду Формат ► Выровнять и выбрать метод выравнивания.
Прочие элементы управления формы
При создании формы вручную элементы управления размещают на ней так, как удобно проектировщику. Созданные элементы управления формы выравнивают с помощью команды Формат Выровнять.
Кроме рассмотренных выше элементов управления Надпись и Поле, существует еще несколько полезных элементов управления.
1. Переключатели (радиокнопки). С ними можно связать команды, например, выполняющие фильтрацию.
2. Флажки. Действуют аналогично переключателям, но в отличие от них, допускают множественный выбор. Удобны для управления режимами сортировки данных.
3. Список. Может содержать фиксированный набор значений или значения из заданного поля одной из таблиц. Позволяет не вводить данные, а выбирать их из списка.
4 Поле со списком. Применяется так же, как и список, но занимает меньше места в форме, поскольку список открывается только после щелчка на раскрывающей кнопке.
5. Командные кнопки. С каждой из них можно связать какую-либо полезную команду, например команду поиска записи, перехода между записями и другие.
6. Вкладки. Позволяют разместить много информации на ограниченной площади. На вкладках размещают другие элементы управления.
7. Поле объекта OLE. Служит для размещения внешнего объекта, соответствующего принятой в Windows концепции связывания и внедрения объектов. Объектом, как правило, является иллюстрация, например фотография, но это может быть и видеозапись, и музыкальный фрагмент, и голосовое сообщение.
Существуют два типа полей для размещения объектов OLE: Свободная рамка объекта и Присоединенная рамка объекта. В первом случае, рамка не связана ни с каким полем таблиц базы данных. Объект, находящийся в ней, выполняет роль иллюстрации и служит для оформления формы. С присоединенной рамкой связано одно из полей таблицы. В ней отображается содержимое этого поля. Это содержимое может меняться при переходе от одной записи к другой.
Мастер отчетов Автоотчет: в столбец Автоотчет: ленточный Мастер диаграмм Почтовые наклейки
Отчеты
Напомним функции основных объектов базы данных:
· таблицы служат для хранения данных;
· запросы служат для выбора данных из таблиц, а также для автоматизации операций по обновлению и изменению таблиц;
· формы служат для упрощения операций ввода данных в таблицы, но могут быть использованы и для просмотра результатов работы запросов на экране.
Из основных объектов нам осталось рассмотреть только отчеты. Отчеты во многом похожи на формы и тоже позволяют получить результаты работы запросов в наглядной форме, но только не на экране, а в виде распечатки на принтере. Таим образом, в результате работы отчета создается бумажный документ.
Автоотчеты
Большая часть того, что было сказано о формах, относится и к отчетам. Выбрав в диалоговом окне База данных вкладку Отчеты и щелкнув на кнопке Создать, мы получаем диалоговое окно Новый отчет, позволяющее создать отчет автоматически (автоотчет), с помощью Мастера или вручную. Точно так же, как и с формами, с отчетами удобнее знакомиться в режиме автоматического создания. Создайте на основе любой таблицы автоотчет в столбец или ленточный. Операция настолько проста, что сводится к одному щелчку левой кнопки мыши.
Отчеты предназначены для вывода информации на принтер, поэтому для расчета расположения данных на печатной странице программа Access должна «знать» все необходимое об особенностях принтера. Эти данные Access получает от операционной системы. Соответственно, принтер в системе должен быть установлен. При отсутствии принтера отчеты создавать все-таки можно. Достаточно выполнить программную установку с помощью команды операционной системы: Пуск ► Настройка Принтеры ► Установка принтера, после чего зарегистрировать драйвер принтера, либо взяв его с гибкого диска, либо выбрав один из драйверов, прилагающихся к самой операционной системе.
Структура отчета
Как и формы, отчеты состоят из разделов, а разделы могут содержать элементы управления. Но, в отличие от форм, разделов в отчетах больше, а элементов управления, наоборот, меньше. Со структурой отчета проще всего ознакомиться, создав какой-либо автоотчет, а затем открыв его в режиме Конструктора.
1.
Структура отчета состоит из пяти разделов: заголовка отчета, верхнего колонтитула, области данных, нижнего колонтитула и примечания отчета. По сравнению с формами новыми являются разделы верхнего и нижнего колонтитулов.
2. Раздел заголовка служит для печати общего заголовка отчета.
3. Раздел верхнего колонтитула можно использовать для печати подзаголовков, если отчет имеет сложную структуру и занимает много страниц. Здесь можно также помещать и колонцифры (номера страниц), если это не сделано в нижнем колонтитуле.
4. В области данных размещают элементы управления, связанные с содержимым полей таблиц базы. В эти элементы Управления выдаются данные из таблиц для печати на принтере. Порядок размещения и выравнивания элементов управления тот же, что и при создании структуры форм.
5. Раздел нижнего колонтитула используют для тех же целей что и раздел верхнего колонтитула. В нашем случае в нем размещены два элемента управления.
6. В первом элементе управления выводится текущая дата. Для этого использована встроенная в Access функция Now(). Она возвращает текущую дату и помещает ее в поле, а отчет воспроизводит ее при печати.
7. Во втором элементе управления выводится номер страницы и общее количество страниц. Для их определения использованы встроенные функции Page() и Pages(). Тот текст, который записан в кавычках, воспроизводится «буквально», а оператор & служит для «склеивания» текста, заключенного в кавычки, со значениями, возвращаемыми функциями. Оператор & называется оператором конкатенации.
8. Раздел примечания используют для размещения дополнительной информации. В нашем примере он не использован.