Microsoft Access 97. Работа № 1 Основные понятия реляционных баз данных. Создание таблиц в Microsoft Access. Цель работы...
191 downloads
480 Views
4MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Microsoft Access 97. Работа № 1 Основные понятия реляционных баз данных. Создание таблиц в Microsoft Access. Цель работы:
Знакомство с основными понятиями управления базами данных, структуре и приемами формирования их при работе в Microsoft Access 97. Создание учебной базы данных. Знакомство с основными приемами работы Конструктора базы данных. Ввод данных в табличном режиме.
1. НАЗНАЧЕНИЕ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ. Программа Microsoft Access, входящая в состав пакета Microsoft Office, относится к классу систем управления базами данных - СУБД. СУБД предназначены для создания баз данных и обеспечения доступа к ним. База данных (БД) – это совокупность особым образом упорядоченных данных, описывающих какие-либо объекты. В качестве примера баз данных, существующих в бумажном виде, можно привести библиотечный каталог и данные о пациентах в регистратуре больницы. Эти базы данных содержат информацию об однотипных объектах – книгах и пациентах. CУБД значительно облегчают работу с базами данных, хотя этап наполнения базы данных является, как и в случае с неавтоматизированными базами данных, самым трудоёмким этапом. Доступ к базе данных подразумевает возможность извлечения из неё информации, удовлетворяющей задаваемым пользователем критериям. Доступ к неавтоматизированным базам данных возможен только в соответствии со способом упорядочения носителей информации. Например, в библиотечном каталоге поиск осуществляется только по алфавитному каталогу авторов книг. Компьютерные СУБД предоставляют возможность упорядочения данных в базах данных и доступа к ним практически любыми способами. СУБД бывают разных типов – реляционные, сетевые, объектно-ориентированные. От типа СУБД зависит, как связаны между собой данные, составляющие базу данных. MS Access относится к реляционным СУБД. В них база данных состоят из отдельных таблиц, хранящих информацию об однотипных объектах. Для знакомства с Access мы создадим простую базу данных. Чтобы сделать это, сначала необходимо рассмотреть основные понятия реляционных баз данных. 2. РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ. Реляционная база данных – это связанная информация, представленная в виде двумерных таблиц. Представьте себе адресную книгу. Она содержит множество строк, каждая из которых соответствует данному индивидууму. Для каждого из них в ней представлены некоторые независимые данные, например, имя, номер телефона, адрес. Представим такую адресную книгу в виде таблицы, содержащей строки и столбцы. Каждая строка (называемая также записью) соответствует определенному индивидууму, каждый столбец содержит значения соответствующего типа данных: имя, номер телефона и адрес, – представленных в каждой строке. Адресная книга может выглядеть таким образом:
Адресная книга Имя Яншин Алексей
Телефон (095)570-12-15
Адрес Москва, пр. Космонавтов, 35, 7
1
Калинин Василий
(127)5-35-53
Апатиты, ул. Северная, 2б 17
Маслов Евгений
(261)12-15-65
Коломна, ул. Весенняя, 127б 35
То, что мы получили, является основой реляционной базы данных, определенной в начале нашего обсуждения двумерной (строки и столбцы) таблицей информации. Однако, реляционная база данных редко состоит из одной таблицы, которая слишком мала по сравнению с базой данных. При создании нескольких таблиц со связанной информацией можно выполнять более сложные и мощные операции над данными. Мощность базы данных заключается, скорее, в связях, которые вы конструируете между частями информации, чем в самих этих частях. 2.1. Установление связи между таблицами. Давайте используем пример адресной книги для того, чтобы обсудить базу данных, которую можно реально использовать в деловой жизни. Предположим, что индивидуумы первой таблицы являются пациентами больницы. Дополнительную информацию о них можно хранить в другой таблице. Столбцы второй таблицы могут быть поименованы таким образом: Пациент, Врач, Дата последнего обращения. Пациент
Врач
Дата последнего обращения
Яншин
Быстров
15/03/92
Маслов
Ястребов
21/11/97
Калинин
Ястребов
10/06/96
Можно выполнить множество мощных функций при извлечении информации из этих таблиц в соответствии с заданными критериями, особенно, если критерий включает связанные части информации из различных таблиц. Предположим, врач Ястребов желает получить номера телефонов всех своих пациентов. Для того, чтобы извлечь эту информацию, он должен связать таблицу с номерами телефонов пациентов (адресную книгу) с таблицей, определяющей его пациентов. В данном простом примере он может мысленно проделать эту операцию и узнать телефонные номера своих пациентов Маслова и Калинина, в действительности же эти таблицы вполне могут быть больше и намного сложнее. СУБД, обрабатывающие реляционные базы данных, были созданы для работы с большими и сложными наборами тех данных, которые являются наиболее общими в деловой жизни общества. Даже если база данных больницы содержит десятки или тысячи имен (как это, вероятно, и бывает в реальной жизни), с помощью нескольких команд СУБД можно получить необходимую информацию практически мгновенно. 2.2. Порядок строк в таблице. Для обеспечения максимальной гибкости при работе с данными строки таблицы, по определению, никак не упорядочены. Этот аспект отличает базу данных от адресной книги. Строки в адресной книге обычно упорядочены по алфавиту. Одно из мощных средств, предоставляемых реляционными СУБД, состоит в том, что пользователи могут упорядочивать информацию по своему желанию. Рассмотрим вторую таблицу. Содержащуюся в ней информацию иногда удобно рассматривать упорядоченной по имени пациента, иногда – в порядке возрастания или убывания даты, а иногда – сгруппированной по имени врача. Внушительное множество возможных порядков строк помешало бы пользователю проявить гибкость в работе с данными, поэтому строки
2
предполагаются неупорядоченными. Именно по этой причине вы не можете просто сказать: "Меня интересует пятая строка таблицы". Независимо от порядка включения данных или какого-либо другого критерия, этой пятой строки не существует по определению. Итак, строки таблицы предполагаются расположенными в произвольном порядке. 2.3. Идентификация строк (первичный ключ). По этой и ряду других причин, необходимо иметь столбец таблицы, который однозначно идентифицирует каждую строку. Обычно этот столбец содержит номер, например, приписанный каждому пациенту, Конечно, можно использовать для идентификации строк имя пациента, но ведь может случиться так, что имеется несколько пациентов с именем "Иванова Мария". В подобном случае нет простого способа их различить, Именно по этой причине обычно используются номера. Такой уникальный столбец (или их группа), используемый для идентификации каждой строки и обеспечивающий различимость всех строк, называется первичным ключом таблицы. Первичный ключ таблицы – жизненно важное понятие структуры базы данных. Он является сердцем системы данных: для того чтобы найти определенную строку в таблице, укажите значение ее первичного ключа. Кроме того, он обеспечивает целостность данных. Если первичный ключ должным образом используется и поддерживается, вы будете твердо уверены в том, что ни одна строка таблицы не является пустой и что каждая из них отлична от остальных. 2.4. Наименование столбцов. В отличие от строк, столбцы таблицы (также называемые полями) упорядочены и поименованы. Следовательно, в нашей таблице, соответствующей адресной книге, можно сослаться на столбец "Адрес" как на "столбец номер три". Естественно, это означает, что каждый столбец данной таблицы должен иметь имя, отличное от других имен, для того, чтобы не возникло путаницы. Лучше всего, когда имена определяют содержимое поля. Access позволяет использовать русские слова в названиях полей, поэтому в учебной базе данных мы будем использовать такие названия полей, как "Имя" или "Дата покупки". Предположим также, что таблица содержит единственный цифровой столбец, используемый как первичный ключ. В следующем разделе детально объясняются таблицы, используемые в качестве примера и их ключи. 3. УЧЕБНАЯ БАЗА ДАННЫХ. Таблицы 1, 2 и 3 образуют реляционную базу данных, которая достаточно мала для того, чтобы можно было понять ее смысл, но и достаточно сложна для того, чтобы показать на ее примере основные приемы работы с MS Access. Можно заметить, что первый столбец в каждой таблице содержит номера, не повторяющиеся от строки к строке в пределах таблицы. Как вы, наверное, догадались, это первичные ключи таблицы. Некоторые из этих номеров появляются также в столбцах других таблиц (в этом нет ничего предосудительного), что указывает на связь между строками, использующими конкретное значение первичного ключа, и той строкой, в которой это значение применяется непосредственно в первичном ключе. Таблица 1. Номер 1001 1002 1004 1007 1003
Имя Дугинов Ольшевский Помякушина Шикин Борескова
Продавцы
Город Липецк Саратов Липецк Бронницы Новгород
3
Комиссионные 0,12 0,13 0,11 0,15 0,1
Таблица 2. Номер 2001 2002 2003 2004 2006 2008 2007
Имя Голубев Дмитриева Кустов Кузьминов Кречко Фролов Каратыгин
Город
Рейтинг
Номер продавца
Липецк Архангельск Саратов Подольск Липецк Саратов Архангельск
100 200 200 300 100 300 100
1001 1003 1002 1002 1001 1007 1004
Таблица 3. Номер
Стоимость
Покупатели
Дата покупки
Заказы Номер покупателя
Номер продавца
3001 18,69 10/03/1996 2008 1007 3003 767,19 10/03/1996 2001 1001 3002 1900,10 10/03/1996 2007 1004 3005 5160,45 10/03/1996 2003 1002 3006 1098,16 10/03/1996 2008 1007 3009 1713,23 10/04/1996 2002 1003 3007 75,75 10/04/1996 2004 1002 3008 4723,00 10/05/1996 2006 1001 3010 1309,95 10/06/1996 2004 1002 3011 9891,88 10/06/1996 2006 1001 Например, поле "Номер продавца" в таблице "Покупатели" определяет, каким продавцом обслуживается конкретный покупатель. Значение в поле "Номер продавца" устанавливает связь с таблицей "Продавцы", которая дает информацию об этом продавце. Очевидно, что продавец, который обслуживает данного покупателя, существует, т.е. значение поля "Номер продавца" в таблице "Покупатели" присутствует также и в таблице "Продавцы". В этом случае мы говорим, что база данных находится в состоянии ссылочной целостности. Сами по себе таблицы предназначены для описания реальных ситуаций в деловой жизни, когда можно использовать БД для ведения дел, связанных с продавцами, их покупателями и заказами. Давайте зафиксируем состояние этих трех таблиц в какой-либо момент времени и уточним назначение каждого из полей таблицы. Перед вами объяснение столбцов (полей) таблиц: Продавцы, Покупатели, Заказы Таблица 1 Продавцы ПОЛЕ
ОПИСАНИЕ ХАРАКТЕРИСТИКИ ПОЛЯ
Номер
Уникальный номер, приписанный каждому продавцу
Имя
Имя продавца
Город
Место расположения продавца Вознаграждение (комиссионные) продавца в форме с десятичной точкой
Комиссионные
Таблица 2 Покупатели
4
ПОЛЕ Номер Имя Город Рейтинг Номер продавца
ОПИСАНИЕ ХАРАКТЕРИСТИКИ ПОЛЯ Уникальный номер, присвоенный покупателю Имя покупателя Место расположения покупателя Цифровой код, определяющий уровень предпочтения данного покупателя. Чем больше число, тем больше предпочтение. Номер продавца, назначенного данному покупателю (из таблицы "Продавцы") Таблица 3 Заказы
ПОЛЕ
ОПИСАНИЕ ХАРАКТЕРИСТИКИ ПОЛЯ
Номер
Уникальный номер, присвоенный данной покупке
Стоимость
Стоимость покупки (в тыс. руб.)
Дата покупки Номер покупателя, сделавшего покупку Номер покупателя (из таблицы "Покупатели") Номер продавца, обслужившего покупателя Номер продавца (из таблицы "Продавцы") Итак, теперь вы знаете, чем является реляционная база данных. Вы также познакомились с некоторыми фундаментальными принципами структурирования таблиц, узнали, как работают строки и столбцы, как с помощью первичного ключа можно отличить одну строку таблицы от другой, и, наконец, как столбцы могут ссылаться на значения других столбцов. Вы узнали, что понятие "запись" является синонимом понятия "строка" и что понятие "поле" является синонимом понятия "столбец". Теперь перейдем к непосредственной работе с MS Access. В данной лабораторной работе вы должны будете создать учебную базу данных. Дата покупки
3.1. Создание учебной базы данных в Microsoft Access-97. 1) Запустите программу Microsoft Access с пиктограммой в виде ключа (Пуск–Программы–Microsoft Access). 2) Сразу после запуска Microsoft Access-97 на экране появится диалоговое окно входа в Microsoft Access с предлагаемыми вариантами работы с базами данных (созданием новой базы данных или с открытием уже имеющейся базы данных). Выберите левой кнопкой мыши Новая база данных, затем нажмите кнопку OK (рис. 1).
5
Рис. 1. Окно входа в Microsoft Access с выбором создания новой базы данных. 3) После этого на экране откроется диалоговое окно "Файл новой базы данных", похожее на диалоговые окна открытия/сохранения документов (рис. 2). 4) Выберите папку, в которой будет храниться файл с Вашей базой данных, а в поле ввода "Имя файла" укажите имя файла своей базы данных. Щелкните левой кнопкой мыши в поле "Имя файла" и с клавиатуры наберите имя Уч.БД затем наберите свою фамилию (расширение указывать не надо!). Microsoft Access 97 хранит все таблицы базы данных, а также некоторую дополнительную информацию – например, запросы, формы просмотра, печатные отчеты, в одном файле с расширением "mdb". Примеры допустимых имен: Уч.БД Иванов, Уч.БД Кузнецова Л.В.
Рис. 2. Окно "Файл новой базы данных" с заполненным полем Имя файла: Примечание: если Ваше имя файла совпадет с именем другого файла, программа выдаст сообщение о том, что файл с таким именем уже существует и предложит заменить его. Выберите вариант ответа – Нет. В этом случае Вам придется изменить имя своего файла, т.е. добавить/удалить хотя бы один символ в названии, например инициалы.
6
5) Теперь на экране открылось окно приведенное на рис. 3 созданной Вами базы данных с присвоенным именем, например: "Уч.БД Кузнецова Л.В. : база данных"
Рис 3. Окно созданной учебной базы данных В этом окне перечисляются объекты, составляющие базу данных. Кроме таблиц, составляющих любую реляционную базу данных, в Access в базе данных хранятся вспомогательные объекты, облегчающие наполнение базы данных, извлечение из нее информации и организацией управления данными, например, Таблицы, Запросы, Формы, Отчеты, Макросы, Модули. Для объектов каждого типа вверху окна имеется закладка (ярлычок). На рис. 3 выбрана (активна) закладка "Таблицы". 3.2. Наполнение базы данных. Создание таблиц. Только что созданная база данных, естественно, пуста. Необходимо ввести в нее первоначальные данные. Т.к. данные представлены в табличном виде, введем в базу данных таблицу 1 Продавцы, таблицу 2 Покупатели и таблицу 3 Заказы. 1) Для добавления в базу данных новой таблицы мышью выберите (активизируйте) закладку Таблицы и нажмите в правой части окна Вашей базы данных кнопку Создать (рис. 3). 2) Появится окно "Новая таблица" (рис. 4) правая часть которого отображает перечень способов создания таблицы.
7
Рис 4. Окно Новая таблица Способы создания таблиц: ¾ Режим таблицы – ввод данных непосредственно в пустую таблицу. В этом случае при сохранении новой таблицы введенные данные анализируются и каждому полю присваивается необходимый тип данных и формат. ¾ Конструктор – позволяет определить все параметры макета будущей таблицы (названия полей, формат и тип данных в каждом поле). ¾ Мастер таблиц – позволяет выбрать поля для создаваемого макета таблицы из множества определенных ранее таблиц на базе имеющихся в Access шаблонов (деловые контакты, список личного имущества или рецептов и т.п.). Примечание: Независимо от способа, примененного для создания таблицы, всегда имеется возможность использовать режим конструктора для дальнейшего изменения макета таблицы, например, для добавления/удаления полей изменения формата и типа данных. 3) Выберите из перечня Конструктор, затем нажмите кнопку OK. Откроется окно Таблица1 : таблица (рис. 5) в котором надо описать структуру (макет) новой таблицы: ввести названия всех полей, выбрать тип данных и описать их характеристики, задать (определить) первичный ключ – ключевое поле.
8
Рис. 5. Окно "Таблица", предназначенное для определения структуры одной таблицы базы данных. Для каждого поля обязательно указывается имя (в колонке Имя поля), тип хранимых в этом поле данных (в колонке Тип данных). В колонке Описание, хотя и не обязательно, можно дать характеристику (описать назначение) поля в качестве комментария, облегчающего впоследствии понимания содержимого таблицы. Создадим макет будущей таблицы Продавцы, используя ее описание, которая будет состоять из четырех столбцов с названиями, совпадающими с Именами полей и содержать данные, тип данных которых задается в окне "Таблица". 4) Заполните поля в окне "Таблица": В первую ячейку введите название поля – Номер, нажмите ENTER (курсор перейдет в следующий столбец, где по умолчанию программа предложит тип данных Текстовый) из предложенного списка выберите Числовой, опять нажмите ENTER, введите описание этого поля – Уникальный номер, приписанный каждому продавцу. Примечание: Следует очень внимательно относится к выбору типа данных поля. Он определяет, какие действия можно производить над этим полем. Например, в запросах информации из числовых полей можно использовать операции сравнения "< (меньше)", "> (больше)" и т.п. Текстовые поля могут участвовать в сортировке по алфавиту. Тип данных поля следует выбирать из выпадающего списка, который можно открыть в тот момент, когда курсор находится в колонке "Тип данных". У каждого поля, кроме имени, типа и описания, имеется еще и набор свойств, перечисленных внизу окна в закладке "Общие". На рис. 6 текущим полем является поле "Номер" (на текущее поле указывает треугольник слева от имени поля). У него есть свойства – "Размер поля", "Формат поля" Число десятичных знаков и т.п. Измените свойство "Размер поля" на "Целое", т.к. номер продавца – целое число. Это свойство у поля "Комиссионные" должно быть "С плав.точкой 8 бт". Проверьте это. Аналогично заполните остальные поля в окне Таблицы1 : таблица. После правильного выполнения всех операций по описанию полей таблицы 1 диалоговое окно Таблица1 : таблица должно иметь вид, показанный на рис. 6.
9
Рис 6. Окно Таблица с описанием полей Таблицы 1 Продавцы. 5) Необходимо определить первичный ключ (ключевое поле) нашего макета таблицы "Продавцы". Им будет поле "Номер". Щелкните правой кнопкой мыши на первой строке таблицы полей с описанием поля "Номер". Появится контекстно-зависимое меню, из которого выберите команду "Ключевое поле". После этого в сером столбце слева от имени поля "Номер" появится изображение ключа. Таким образом мы задали первичный ключ таблицы. Если в качестве первичного ключа выступает не одно поле, а несколько, надо сначала выделить их все, а затем уже применить команду "Ключевое поле". 6) Сохраним созданный макет таблицы в базе данных и, кроме того, присвоим ему имя "Продавцы". Пока она называется "Таблица1". Это имя, присвоено новой таблице "по умолчанию". Закройте окно "Таблица", дважды щелкнув на значке системного меню этого окна, или нажав Ctrl-F4 (ВНИМАНИЕ! Alt-F4 закрывает окно программы, а Ctrl-F4 – дочерние окна этой программы). На вопрос о сохранении изменений в "Таблице1" ответьте "Да", а затем в окне "Сохранение" (рис. 7) введите новое имя таблицы – "Продавцы".
Рис. 7. Окно "Сохранение", позволяющее изменить имя таблицы. Теперь Ваша база данных состоит из одной таблицы Продавцы, но она пока не заполнена данными. 7) В окне "База данных" (рис. 8) теперь появится таблица "Продавцы". Переименовать или удалить таблицу можно в этом окне, щелкнув правой кнопкой на ее имени и выбрав соответствующую команду в контекстном меню. Посмотрите, как выглядит это меню, но не выбирайте никаких команд (чтобы убрать контекстное меню, достаточно нажать на клавиатуре клавишу Esc или щелкнуть левой кнопкой вне меню). Кнопка "Конструктор" в окне "База данных" позволяет перейти в окно "Таблица" и внести изменения в ее
10
структуру. Попробуйте нажать кнопку "Конструктор" и просмотреть описание таблицы "Продавцы".
Рис. 8. Окно "База данных", показывающее, что в базе данных Уч.БД Кузнецова Л.В. имеется одна таблица – "Продавцы". Аналогичным образом создайте макеты для таблиц Покупатели и Заказы. Указание. В макете таблицы Заказы: ¾ для поля, содержащего дату, используйте тип данных "Дата/время" и дополнительно укажите ему формат "Краткий формат даты" (в кратком формате не придется указывать время в часах, минутах и секундах). ¾ для поля "Стоимость" укажите тип – "Денежный" и задайте количество десятичных знаков 2. Не забудьте определить ключевое поле в каждой таблице! Это должно быть поле – Номер. Теперь Ваша база данных состоит из трех таблиц, но они не содержат никакой информации, необходимо ввести данные в каждую таблицу (рис. 9).
Рис. 9. Вид окна "Уч.БД Кузнецова Л.В. : база данных" с тремя таблицами. Сначала введем данные только в одну таблицу – "Продавцы".
11
3.3. Ввод данных в таблицу. Откройте таблицу Продавцы (двойной щелчок мыши). Введите данные в поля таблицы, используя сведения из Таблицы 1 Продавцы. Таблица 1. Номер 1001 1002 1004 1007 1003
Имя Дугинов Ольшевский Помякушина Шикин Борескова
Продавцы Город
Комиссионные
Липецк Саратов Липецк Бронницы Новгород
0,12 0,13 0,11 0,15 0,1
Примечание. 1. При вводе данных в поле Комиссионные для разделения целой части от дробной используйте клавишу с точкой на дополнительной (цифровой клавиатуре), в противном случае программа будет выдавать сообщение об ошибке ввода данных в поле. 2. При вводе данных в поле Комиссионные программа Access может не отображать целую часть, если она равна нулю, а также отбрасывать незначащие нули в конце дробных чисел, например число 0,12 будет отображено в виде ,12, а число 0,10 будет отображено в виде ,1. 3. Если вы заметили ошибку в одной из ячеек, то ее можно исправить так: перейти в ячейку с ошибкой с помощью клавиш курсора или щелчком левой кнопкой мыши, затем нажать F2 и исправить ошибку. В результате таблица с данными о продавцах должна иметь такой же вид, что и на рис. 10.
Рис. 10. Вид окна заполненной таблицы Продавцы. ВНИМАНИЕ!!!
Остальные таблицы заполнять не надо.
Закройте базу данных командой Файл–Закрыть и выйдите из Access с помощью команды Файл– Выход.
12
Microsoft Access 97. Работа № 2 Внесение информации в базу данных. Редактирование базы данных. Создание форм. Цель работы:
Открытие базы данных и внесение дополнительной информации в нее. Редактирование таблиц. Создание форм. Знакомство с основными приемами работы Мастера форм базы данных. Ввод данных с помощью Мастера форм.
В работе № 1 вами была создана учебная база данных, состоящая из трех таблиц – "Продавцы", "Покупатели" и "Заказы". Вы описали структуру всех трех таблиц, и ввели данные в таблицу "Продавцы". В этой работе с помощью Мастера форм заполните данными остальные таблицы – "Покупатели" и "Заказы". После выполнения работы вы узнаете, как: ¾ открывать существующую базу данных; ¾ создавать формы с помощью Мастера форм; ¾ вносить информацию в базу данных с помощью форм; ¾ переносить данные из табличного вида в Форму. 1. Открытие базы данных. Будем полагать, что наша учебная база данных хранится в файле с именем Уч.БД Кузнецова Л.В.mdb. Существует два способа открытия своей базы данных: 1. В окне входа в Microsoft Access 97, которое появляется при запуске программы (рис. 1), чтобы открыть одну из четырех баз данных, которые открывались последними, выберите имя базы данных в списке двойным нажатием кнопки мыши (список находится в нижней части экрана).
Рис. 1. Окно входа в Microsoft Access. 2. Для того чтобы открыть базу данных, не представленную в списке, выберите элемент Другие файлы..., либо нажмите кнопку Отмена и в меню Файл выберите команду Открыть базу данных.... На экране появится диалоговое окно "Открытие файла базы данных", затем найдите и откройте файл, хранящий вашу базу данных.
13
Рис. 2. Окно "Открытие файла базы данных" Таким образом, процедура открытия файла с хранящейся в нем базой данных во многом схожа с аналогичной процедурой при работе в текстовом редакторе Word и в электронных таблицах Excel. В открывшемся окне с именем вашей базы данных в строке заголовка вы увидите, какие объекты хранятся в базе данных (там только три таблицы – "Продавцы", "Покупатели" и "Заказы"). Работая с этим окном, вы можете открыть любой объект базы данных достаточно дважды щелкнуть мышью на его имени или нажать кнопку Открыть. Для того, чтобы поработать с другим объектом, можно использовать ярлычок того типа объекта, который вас интересует. Скажем, чтобы поработать с формой, достаточно щелкнуть на ярлычке Формы и перед вами появится перечень форм, хранящихся в базе данных. После этого нужно дважды щелкнуть мышью на имени формы, которая вас интересует. 2. РЕДАКТИРОВАНИЕ ТАБЛИЦЫ. 2.1. Открытие и перемещение по таблице. Откройте таблицу "Продавцы" (двойной щелчок мышью на имени таблицы "Продавцы" или выбрать в окне базы данных нужную таблицу и щелкнуть мышью в правой части окна на кнопке Открыть). Таблица откроется, обратите внимание, что список продавцов выстроен по возрастанию их номеров в поле Номер. При открытии программа автоматически произвела сортировку по возрастанию в первом поле – Номер. Теперь проанализируем содержание окна таблицы "Продавцы". Эта таблица внешне похожа на таблицу Excel, но обратите внимание на следующие отличия (рис. 3): ¾ номера строк отсутствуют, вместо них имеются условные значки: треугольник – текущая запись; звездочка – строка для ввода новой записи; карандаш – редактирование записи (появляется при вводе данных в таблицу); ¾ имена столбцов являются именами полей, а не латинскими буквами.
14
¾ внизу окна находится строка с навигационными кнопками, с помощью которых вы можете перемещаться по строкам таблицы.
Маркер строки текущей записи Маркер строки новой записи Перемещение на первую запись
Перемещение в строку новой записи
Количество записей в таблице
Перемещение на последнюю запись
Перемещение на предыдущую запись
Перемещение на следующую запись
Номер текущей записи
Рис. 3. Окно таблицы "Продавцы" Попробуйте перемещаться по таблице каждым из трех способов: 1. с помощью навигационных кнопок; 2. с помощью клавиш курсора; 3. набрать номер записи в поле текущей записи, расположенном в строке с навигационными кнопками, и нажать клавишу Enter. 2.2. Исправление записей таблицы. Если вы заметили ошибку в одной из ячеек, то ее можно исправить также как и в ячейке электронной таблицы Excel: перейти в ячейку с ошибкой с помощью клавиш курсора или щелчком левой кнопкой мыши, затем нажать F2 и исправить ошибку.
2.3. Удаление записей таблицы. При необходимости запись из таблицы можно удалить. Для этого нужно выделить всю строку с записью (щелкнуть левой кнопкой мыши на серой кнопке слева от данных записи) и нажать клавишу Delete или выбрать в меню Правка–Удалить запись. Программа выдаст предупреждение: Предпринимается попытка удалить следующее число записей: 1. Для удаления записи нажмите кнопку "Да" Отмена изменений будет невозможна. Удалить записи? На рис. 3 текущей записью является запись о продавце Боресковой (третья). Щелкните на серой кнопке слева от этой записи и удалите запись нажатием клавиши Delete. В окне с подтверждением удаления нажмите кнопку Да. После этого снова введите данные об Боресковой в строке таблице, помеченной звездочкой (последняя запись). (Данные: 1003 Борескова Новгород 0,10).
15
Теперь закройте окно таблицы "Продавцы", дважды щелкнув мышью на кнопке системного меню этого окна. 3. СОЗДАНИЕ ФОРМЫ С ПОМОЩЬЮ МАСТЕРА ФОРМ. Табличное представление, с которым вы познакомились в предыдущей работе, наиболее подходит для работы со всеми записями таблицы одновременно. Однако, чтобы упростить процесс ввода данных и исключить возможность ошибок, лучше использовать формы – специальные окна для ввода данных. Сейчас вы создадите форму для внесения данных в таблицу "Покупатели", используя сведения из Таблицы 2 "Покупатели". Таблица 2. Покупатели Номер
Имя
Город
Рейтинг
Номер продавца
2001
Голубев
Липецк
100
1001
2002
Дмитриева
Архангельск
200
1003
2003
Кустов
Саратов
200
1002
2004
Кузьминов
Подольск
300
1002
2006
Кречко
Липецк
100
1001
2008
Фролов
Саратов
300
1007
2007
Каратыгин
Архангельск
100
1004
Для создания формы используем "Мастер форм". Мастерами в MS Access называются средства для автоматизированного выполнения типичных операций по работе с базами данных – например, для создания таблиц на базе имеющихся шаблонов, создания печатных отчетов и некоторых других операций. После запуска Мастера вы должны ответить на ряд уточняющих вопросов. Чтобы создать форму на основе макета таблицы "Покупатели" с использованием Мастера форм, выполните следующие действия: 1. В окне "База данных" щелкните на ярлычке Формы. 2. Появившийся список форм пока пуст. Нажмите кнопку Создать в окне "База данных". Появится диалоговое окно "Новая форма" (рис. 4).
Рис. 4. Диалоговое окно "Новая форма"
16
3. В списке способов создания формы выберите Мастер форм, в поле источники данных выберите Покупатели, затем нажмите OK. Появится первый диалог Мастера форм (рис. 5), где вы должны выбрать поля исходной таблицы, чтобы использовать их в Форме этой таблицы. Поскольку в создаваемой форме должны присутствовать те же поля, что и в макете таблицы, нажмите кнопку со знаком >>, в этом случае все поля таблицы будут продублированы в Форме (если нажать на кнопку со знаком > перенос полей будет производиться по одному). Переход к следующему шагу диалога осуществляется нажатием на кнопку Далее >, нажмите ее.
Рис. 5. Первый шаг Мастера форм, в котором вы формируете макет Формы. 4. На втором шаге диалога выбирается внешний вид создаваемой формы. Выберите В один столбец, Мастер будет выстраивать поля каждой записи по вертикали, причем имена полей находятся слева, затем нажмите кнопку Далее >, для перехода к третьему шагу диалога. 5. На третьем шаге Мастер предлагает выбрать стиль отображения Формы (рис. 6), выберите в списке стилей Обычный, затем на кнопке Далее >.
Рис. 6. Окно диалога Мастера форм для выбора стиля Формы (третий шаг).
17
6. Если вас устраивает заголовок "Покупатели" для формы, то не надо вносить изменения. Щелкните на кнопке Готово, чтобы увидеть форму (рис. 7).
Рис. 7. Окно формы "Покупатели" без записей. Форма содержит пустые поля, в которые вы будете вводить информацию. Поле представляет собой область формы, в которую вы вводите данные, скажем, имя или город. Курсор указывает вам место, куда будет вводиться информация. Вы можете переместить курсор, щелкнув мышью на другом поле или нажав клавишу Tab. Как правило, формы построены так, что при нажатии клавиши Tab курсор ввода перемещается слева направо и сверху вниз.
7. Внесите данные в поля Формы о покупателе Голубев, используя данные Таблицы 2. Покупатели (рис. 8).
Рис. 8. Окно формы "Покупатели" с первой записью. 8. Закройте форму и вернитесь в окно "База данных" где увидите, что в базе данных теперь есть одна форма. 4. ОТКРЫТИЕ И ИСПОЛЬЗОВАНИЕ ФОРМЫ.
18
Теперь используем созданную в предыдущем разделе форму для того, чтобы ввести в нее новые записи. Чтобы открыть форму, выполните следующие действия: 1. В окне базы данных щелкните на ярлычке Форма. Появится список форм базы данных (рис. 9).
Рис. 9. Окно "База данных" с перечнем форм. 2. Дважды щелкните на имени формы "Покупатели". Откроется форма, содержащая сведения об одном покупателе (рис. 8). Чтобы ввести информацию о новом покупателе, установите курсор перед числом в поле, расположенном рядом с полем Запись:. Удалите число нажатием клавиши Delete, а затем введите с клавиатуры число 2 и нажмите клавишу Enter или левой кнопкой мыши нажмите навигационную кнопку со звездочкой (перемещение к новой записи). Перед вами появится незаполненная форма нового продавца, а в строке Запись: будет стоять число 2 из 2. 3. Введите в форму данные об остальных покупателях, используя сведения Таблицы 2. Покупатели. В нижней части формы, как и в окне табличного представления данных, есть строка с навигационными кнопками. Если вы посмотрите на нее, то заметите, что имеются данные о 7 покупателях. Попробуйте перемещаться по форме "Покупатели" с помощью навигационных кнопок. 4. После того, как закончите ввод информации, закройте форму двойным щелчком на кнопке ее системного меню. 5. ПРАКТИЧЕСКОЕ ЗАДАНИЕ. 1. С помощью Мастера форм создайте форму Продавцы путем переноса полей из табличного варианта представления данных этой таблицы. 2. Введите в таблицу Заказы данные о двух заказах, пользуясь табличным представлением данных (при вводе даты в качестве разделителя дня, месяца и года используйте клавишу деления на цифровой клавиатуре).
19
3. С помощью Мастера форм создайте форму для таблицы Заказы. 4. Введите данные об остальных заказах, используя сведения из Таблицы 3. Заказы с помощью созданной формы. 5. Завершите работу с MS Access. Таблица 3. Номер
Стоимость
Заказы
Дата покупки
Номер покупателя
Номер продавца
3001
18,69
10/03/1996
2008
1007
3003
767,19
10/03/1996
2001
1001
3002
1900,10
10/03/1996
2007
1004
3005
5160,45
10/03/1996
2003
1002
3006
1098,16
10/03/1996
2008
1007
3009
1713,23
10/04/1996
2002
1003
3007
75,75
10/04/1996
2004
1002
3008
4723,00
10/05/1996
2006
1001
3010
1309,95
10/06/1996
2004
1002
3011
9891,88
10/06/1996
2006
1001
6. ВОПРОСЫ ДЛЯ ПОВТОРЕНИЯ. 1. Какие объекты содержатся в вашей базе данных? 2. Сколько записей в таблице "Заказы" и как можно узнать их количество с помощью табличного представления и с помощью формы? 3. Как удалить запись, работая с данными в табличном виде? 4. Как исправить ошибку в одном из полей формы? 5. Как в табличном представлении и в форме обозначается текущая запись?
Microsoft Access 97. Работа № 3 Представление данных на экране. Поиск информации в базе данных. Цель работы:
Знакомство с приемами настройки панели инструментов. Изучение различных режимов представления данных на экране: режим формы и режим таблицы, переход от одного режима в другой. Способы изменения внешнего вида форм и таблиц. Изучение способов поиска информации в базе данных. Изучение типов фильтров в Microsoft Access. Основные принципы фильтрации записей для отбора подмножества родственных записей. Сортировка записей.
Нельзя решить раз и навсегда, какое представление данных удобнее – это зависит от задачи, которую вы решаете. Вы уже знакомы с режимами формы и таблицы, применяемыми для доступа к данным таблиц базы данных. Режим формы удобнее, когда требуется работать с записями таблицы по отдельности, а режим таблицы – для работы с группой записей.
20
При работе с базой данных редко требуется иметь дело сразу со всеми записями таблицы. Вы задаете вопросы – Microsoft Access отвечает на них. Если вас интересуют сведения о покупателях в Липецке, нет необходимости выводить на экран информацию обо всех остальных покупателях. Просматривая формы, вы можете сосредоточиться лишь на той информации, которая вас интересует в данный момент, не отвлекаясь на прочие данные. В этой работе описывается, как следует задавать вопросы, чтобы получить от Microsoft Access только необходимые вам данные. 1. ПРЕДСТАВЛЕНИЕ ДАННЫХ НА ЭКРАНЕ. 1.1. Различные виды представления данных. Microsoft Access обеспечивает возможность двух представлений данных – в Режиме формы и в Режиме таблицы. Форма разбита на поля, дающие наилучшее представление об отдельной записи. Табличное представление показывает те же поля, организованные в строки и столбцы, так что вы можете просматривать множество записей одновременно (рис. 1 а, б).
а) в табличном виде
Рис.1. Представление данных: б) в виде формы.
В табличном представлении вы можете менять местами колонки (поля), изменять размеры строк и столбов. Microsoft Access дает многочисленные возможности редактирования данных для разных видов представления. 1.2. Переход от одного режима представления к другому. Для того чтобы познакомиться с различными режимами представления данных, воспользуемся формой Покупатели. Если вы еще не открыли базу данных, откройте ее (с помощью команды Файл–Открыть). Затем откройте форму: В окне База Данных щелкните на ярлычке Форма. Появится список форм вашей базы данных. Щелкните два раза на строке Покупатели. Откроется форма Покупатели и появится запись под номером 1. Поля в форме Покупатели позволяют наилучшим образом представить информацию о конкретном покупателе. Однако, сравнение данных о различных покупателях удобнее проводить, работая в Режиме таблицы, когда видно все записи о покупателях. Чтобы переключиться на табличное представление формы Покупатели, выберите команду Вид– Режим таблицы или щелкните на кнопке Режим таблицы на панели инструментов (рис. 3). Записи о клиентах появятся в виде таблицы. Треугольник рядом с номером покупателя указывает на текущую запись. Вы видите в таблице записи и об остальных покупателях. Чтобы перейти к другой записи, щелкните в любом месте соответствующей строки. Теперь текущей становится другая запись, та, на которую указывает черный треугольник в левом поле таблицы. Если вы теперь переключитесь в Режим формы, то увидите форму этого клиента.
21
Рис. 2. Кнопка Режим формы
Рис. 3. Кнопка Режим таблицы
Примечание:
если на панели инструментов отсутствуют кнопки Режим таблицы и Режим формы можно произвести настройку панели инструментов и добавить в нее недостающие кнопки. Настройка панели инструментов. Для настройки панели инструментов необходимо выполнить следующие действия: 1. В меню Вид–Панели инструментов, выбрать команду Настройка...; 2. В диалоговом окне Настройка выбрать ярлык Команды; 3. В списке Категории: найти и выбрать Вид (справа появится перечень команд этой категории с изображениями кнопок); 4. Найти команду Режим формы с соответствующей кнопкой (рис. 2); 5. Нажать левую кнопку мыши на этой команде и удерживая ее перенести кнопку команды на Панель инструментов, когда курсор мыши будет находиться на Панели инструментов отпустить левую кнопку мыши (на Панели инструментов появится кнопка Режим формы, показанная на рис. 2); 6. Повторите действия п. 5 для переноса кнопки Режим таблицы (рис. 3); 7. Для получения справки о выбранной команде и ее назначении можно нажать кнопку Описание (появится поле с описанием действия данной команды рис. 4); 8. Нажмите кнопку Закрыть в диалоговом окне Настройка.
Рис. 4 Диалоговое окно настройки панели инструментов с описанием команды Режим таблицы. Задание. Попробуйте, как выполняется переключение между режимами формы и таблицы: Выберите команду Вид–Форма или щелкните на кнопке Режим Формы панели инструментов (рис. 2). Запись о покупателе появится в виде индивидуальной формы. Выберите команду Вид–Таблица или щелкните на кнопке Режим Таблицы (рис. 3), чтобы вернуться к табличному представлению. Текущей записью по-прежнему будет строка, содержащая сведения все о том же покупателе. 1.3. Изменение вида таблицы.
22
Перед вами сейчас открыта таблица Покупатели (если нет, откройте ее). При необходимости измените размер окна таблицы так, чтобы она была видна целиком, как на рис. 5.
Разделитель записей
Разделитель полей
Рис. 5. Таблица Покупатели. У таблицы можно изменить высоту строк и ширину столбцов. Без этого не обойтись в тех случаях, когда данные не помещаются целиком в ячейках таблицы или сами названия полей. Для изменения высоты строки используются разделители записей, расположенные с левой стороны таблицы. Для изменения ширины колонки пользуются разделителями полей, которые находятся в верхней части таблицы (рис. 5). Процедура изменения высоты строк и ширины полей похожа на аналогичную операцию при работе в Excel. Попробуйте изменить высоту строки таблицы: 1. Поместите курсор мыши на разделитель записей снизу строки. Форма указателя изменится (рис. 6а), это будет сигналом к тому, что вы можете изменять размеры строк. 2. Протащите границу вниз, чтобы увеличить высоту строки, Microsoft Access меняет размеры всех строк (изменить размер одной строки нельзя – в этом состоит отличие от Excel). 3. Восстановите первоначальный размер строки.
Рис. 6. Форма указателя: а) на разделителе записей б) на разделителе полей. Аналогичным образом попробуйте изменять ширины столбцов, например, столбца "Номер". Его вполне можно сузить. В Microsoft Access имеется и другой вариант настройки высоты строк и ширины столбцов, он реализуется в меню Формат. Там имеется возможность точно задать высоту строки или ширину столбца в виде числового значения, а также определить эти параметры как стандартные, а для столбцов таблицы еще и подобрать их ширину по ширине данных этого столбца (поля). Подбор ширины столбца по ширине имеющихся в нем данных, включая название поля, можно произвести двойным щелчком левой кнопки мыши на разделителе поля. Возможно, вам для работы понадобится, чтобы на экране была информация только из нескольких столбцов. Ненужные вы можете убрать (скрыть) с экрана (но не удалить из базы данных). Чтобы скрыть столбец, необходимо перетащить правую границу столбца к его левой границе, т.е. сделать ширину столбца равной нулю. Попробуйте убрать столбец Номер. Кстати, меню Формат содержит специальную команду Скрыть столбцы. Если вы выбираете эту команду, она скроет столбец, в котором находится курсор. Используя эту команду, скройте столбец Номер продавца.
23
Чтобы снова увидеть скрытые столбцы, выберите команду Формат–Отобразить столбцы..., после чего в открывшемся окне Отображение столбцов (рис. 7) поставьте флажки (галочки) около имен столбцов, которые были скрыты. Отобразите этим способом оба скрытых столбца. Выберите команду Формат–Отобразить столбцы... и в диалоговом окне Отображение столбцов поставьте или снимите флажки у разных столбцов, посмотрите какой вид приобрела таблица (если снять все флажки в таблице не будет отображено ни одного поля).
Рис. 7. Вид окна Отображение столбцов с двумя скрытыми столбцами таблицы Покупатели. 3. ПОИСК ИНФОРМАЦИИ. Microsoft Access гораздо удобнее шкафа с папками, поскольку вы можете найти именно те записи, которые вам нужны, причем рассортированными наиболее удобным для вас способом. Вне зависимости от того, содержит ли ваша база данных сотни, тысячи или даже миллионы записей, Microsoft Access найдет именно то, что вы ищете, и отсортирует данные именно так, как вы хотите. Для быстрых поисков, например одной-единственной записи о конкретном покупателе, используйте команду меню Правка–Найти или кнопку Найти (рис. 8) на панели инструментов.
Рис. 8. Вид кнопки Найти. Если вы хотите увидеть определенную группу записей, например всех покупателей в определенном городе, вы создаете фильтр, чтобы сообщить Microsoft Access, какие именно записи вас больше всего интересуют. Создавая фильтр, вы сообщаете Microsoft Access перечень условий отбора, описывающих интересующее вас подмножество записей. После этого Microsoft Access представляет вам записи в виде форм или таблиц. При помощи фильтра можно также сортировать записи по алфавиту либо по убыванию, либо по возрастанию числа. 3.1. Поиск конкретной записи или группы записей Попробуем найти данные о покупателе по фамилии Кречко. Для этого: 1. Откройте форму Покупатели.
24
2. Щелкните в любой точке поля Имя, в нем должен появиться клавиатурный курсор – вертикальная черта. 3. Выберите команду Правка–Найти или щелкните на панели инструментов кнопку Найти (рис. 8). Откроется диалоговое окно Поиск в поле: (рис. 9). Заголовок диалога содержит наименование поля, в котором будет вестись поиск – 'Имя'. Если диалог закрывает содержание формы, перетащите его в другое место, ухватившись за строку заголовка.
Рис. 9. Диалоговое окно Поиск в поле. Рассмотрим содержимое диалогового окна Поиск в поле. ¾ Строка Образец имеет поле для ввода с клавиатуры искомого текста или номера; ¾ Строка Просмотр имеет поле с перечнем направлений поиска в базе данных: (Вверх – к первой записи, Вниз – к последней записи, Все – во всей таблице); ¾ Строка Совпадение имеет поле с перечнем типов совпадений при поиске: (Поля целиком – означает, что по образцу для поиска «мост» будет найден Мост, а не Мостовая, С любой частью поля – означает, что по образцу для поиска «бург» будут найдены Санкт-Петербург и Екатеринбург, С начала поля – означает, что по образцу для поиска «нев» будет найдена Нева, а не Кишинев); ¾ Имеются три опции задания требований при поиске данных, их можно включить – поставить флажок (галочку) или отключить – снять флажок: (Только в текущем поле – опция включена по умолчанию и производит поиск только в текущем поле, при отключении – поиск по всем полям таблицы, С учетом формата полей – при включении производит поиск данных по формату отображения данных, например, дата, при отключении поиск производится по значению данных, С учетом регистра – при включении производит поиск с условием, что искомый текст должен полностью совпадать с образцом, включая то, какие буквы являются прописными, а какие –строчными). Задание. Найдите в форме базы данных покупателя по фамилии Кречко. 1. В строке ввода Образец введите фамилию покупателя: Кречко. 2. Задайте параметры поиска как показано на рис. 10. 3. Нажмите кнопку Найти.
Рис. 10. Диалоговое окно Поиск в поле.
25
Появляется запись покупателя из Липецка, который носит нужную вам фамилию (рис. 11). Похоже, что это именно тот покупатель, которого искали, но лучше все-таки проверить, нет ли еще одного с такой же фамилией.
Рис. 11. Результат поиска. 4. Нажмите в диалоге кнопку Найти далее. В базе данных нет другого покупателя с таким же именем. Программа сообщает, что поиск записей завершен и данный образец не найден, т.е. второго покупателя с именем Кречко – нет. 5. Для закрытия сообщения нажмите кнопку ОК. 6. Нажмите кнопку Закрыть, чтобы закрыть диалог Поиск в поле. Таким образом, вы нашли единственного покупателя по фамилии Кречко. 3.2. Фильтрация группы записей. Предположим, нам необходимо выбрать из базы данных все записи, содержащие какой-либо элемент, например покупателей, проживающих в Архангельске. Для этого проделайте следующие шаги: 1. Откройте форму Покупатели. 2. Форма представит вам первую запись. Но поскольку для поиска родственных записей вам необходимо иметь перед глазами все записи, переключитесь на табличное представление данных, для чего щелкните на кнопке Режим таблицы панели инструментов (рис. 3). Если в режиме таблицы не видно всех записей увеличьте размер этого окна, растянув мышью его границы.
Выбор способов фильтрации данных осуществляется через меню Записи–Фильтр (рис. 12).
26
Рис. 12. Список фильтров в меню Записи. Также его можно осуществить, нажав на соответствующие кнопки панели инструментов:
Фильтр по выделенному – производит отбор записей в текущем поле, соответствующих записи выбранной ячейки; Изменить фильтр – открывает окно фильтра, в котором выводится пустая форма или таблица для определения параметров последующей фильтрации; Применение фильтра (Удалить фильтр) – применяет или отменяет назначенную фильтрацию данных таблицы или формы. Кнопка Расширенный фильтр на панели инструментов отсутствует, чтобы вынести ее на панель инструментов, надо выполнить действия описанные в п. 1.2, только в списке Категории: надо выбрать Записи и перенести соответствующую кнопку. Расширенный фильтр – выводит окно расширенного фильтра для создания фильтра (определения параметров фильтрации данных), применяемого в режиме таблицы или формы (рис. 13). 3. Произведем отбор данных с помощью Расширенного фильтра. 4. Щелкните на кнопке Расширенный фильтр панели инструментов или выберите его в меню Записи–Фильтр–Расширенный фильтр. Откроется окно Покупатели Фильтр1 : фильтр, в котором вам предстоит указать все параметры интересующих вас записей (рис. 13). Верхняя часть окна содержит список, включающий в себя перечень всех полей данной формы, В нижней части окна находится бланк фильтра, в котором вы будете указывать условия отбора интересующих вас записей.
27
Рис. 13. Диалоговое окно Расширенного Фильтра. 5. Поскольку вас интересуют покупатели, проживающие в определенном городе, в бланке фильтра вам нужно указать такие условия отбора, которые позволят выбрать именно эти записи. Начните с указания поля, для которого вы намерены установить условия. В вашем случае это будет поле Город. 6. Щелкните в бланке фильтра на первую ячейку строки Поле, затем в списке этой ячейки выберите поле Город, либо перетащите название этого поля из списка полей в верхней части окна Расширенный Фильтр. Для того чтобы это сделать, щелкните на названии поля в верхнем списке и, удерживая левую кнопку мыши, переместите ее вниз. Когда указатель окажется на первой клетке строки Поле, отпустите кнопку мыши. 7. Щелкните на ячейке Условие отбора. Введите сюда значение условия с клавиатуры, впечатав слово Архангельск. 8. Нажмите клавишу Enter. Microsoft Access добавит к вашему критерию кавычки. В принципе вы можете сделать это сами, особенно если вводите текст, содержащий знаки препинания (рис. 14).
Рис. 14. Вид бланка Расширенного фильтра после ввода условий отбора. 9. Щелкните кнопку Применение фильтра на панели инструментов. Microsoft Access начнет поиск данных удовлетворяющих поставленным условиям и представит данные в табличной форме (рис. 15).
Рис. 15. Результат отбора данных Формы Покупатели. Предположим, что из всех отобранных покупателей вас интересуют лишь те, у которых значение рейтинга выше 100. Чтобы выполнить подобный отбор, вам нужно ввести этот критерий в виде
28
выражения, которое уточняет интересующие вас параметры и требует от Microsoft Access сравнения чисел. Выполните действия: 10. Щелкните на окне Расширенный Фильтр, чтобы привести его в активное состояние. В окне вы увидите установленные ранее условия фильтрации записей. 11. В соседней ячейке (рядом с ячейкой Город) в строке Поле, выберите из списка полей Рейтинг, либо перетащите его из верхнего списка полей. 12. В клетке Условие отбора укажите неравенство >100 (рис. 16), затем нажмите клавишу Enter. 13. Щелкните кнопку Применение фильтра на панели инструментов и увидите на таблицу с единственным покупателем, который отвечает всем условиям отбора, т.е. из всего списка покупателей выбран покупатель из Архангельска и его рейтинг больше 100.
Рис. 16. Вид бланка Расширенного фильтра с дополнительным условием отбора. Чтобы снова вызвать на экран все записи нужно отключить фильтр. Для этого на панели инструментов нажмите кнопку Удалить фильтр (она же выполняет вторую функцию Применение фильтра). Теперь в таблице вновь будут показаны все записи, а не только те, которые отвечают условиям отбора. Задание. Произведите отбор записей в форме Покупатели с помощью кнопки Фильтр по выделенному только из Саратова, для этого в поле Город поместите курсор в ячейку с записью Саратов и нажмите на панели инструментов кнопку Фильтр по выделенному. Результатом отбора должна стать таблица с двумя покупателями из Саратова – Кустов и Фролов. Отключите фильтр, чтобы увидеть все записи таблицы. Задание. Выберите те записи о покупателях, чей рейтинг 100 используя кнопку Фильтр по выделенному. 3.3. Сортировка записей. Иногда возникает необходимость отсортировать ваши записи тем или иным образом. Например, может понадобиться расположить записи о покупателях в алфавитном порядке городов, где они живут. Вы можете создать свой собственный фильтр, используя окно Фильтр, но Microsoft Access располагает значительно более простым способом решения подобной задачи. Поскольку вы только что имели дело с диалогом Фильтр, там содержатся ранее введенные вами критерии. В данном случае они вам не нужны и их следует отменить: 1. Щелкните на кнопке Изменить фильтр. Введенные вами ранее условия все еще находятся в полях диалога. 2. Выберите команду меню Правка–Очистить бланк или нажмите кнопку Microsoft Access удалит всю информацию из бланка фильтра.
29
3. Щелкните на кнопке Применить фильтр панели инструментов, чтобы ваши данные были готовы к сортировке. Теперь попробуйте рассортировать записи в алфавитном порядке прямо в окне таблицы. 1. Щелкните на поле Город любой записи в таблице Покупатели. 2. Щелкните на кнопке По возрастанию на панели инструментов (рис. 17).
Рис. 17. Кнопки сортировки на панели инструментов: По возрастанию, По убыванию. В данном случае восходящий порядок означает, что записи сортируются по возрастанию или по алфавиту от А до Я (рис. 18). Нисходящий порядок означает сортировку по убыванию – от Я до А. Использование кнопок По возрастанию или По убыванию, а также команда меню Записи– Сортировка создают и применяют фильтр автоматически.
Рис. 18. Вид таблицы после сортировки городов в алфавитном порядке. Откройте диалоговое окно Расширенный фильтр, чтобы увидеть заполненный бланк фильтра и текущий режим сортировки.
Теперь расположите записи по числовым значениям. Вы можете, например, отсортировать записи о покупателях по убыванию их рейтинга. 1. Щелкните на строке заголовка таблицы Покупатели, чтобы сделать ее активной. 2. Щелкните на любой записи в поле Рейтинг. 3. Щелкните на кнопке По убыванию панели инструментов (рис. 17) или выберите в меню команду Записи–Сортировка–По убыванию. В данном случае нисходящий порядок (рис. 19) означает, что записи сортируются по рейтингу от высоких значений к низким.
30
Рис. 19. Результат сортировки по убыванию рейтинга. 4. Теперь закройте форму Покупатели. Учтите, что Microsoft Access не сохраняет действующий фильтр вместе с формой. Поэтому, когда вы в следующий раз откроете форму, записи не будут отсортированы или подвергнуты фильтрации. В следующей работе вы научитесь создавать и использовать запросы. Запрос может быть уподоблен фильтру, но он сохраняется при выходе из окна. Вы можете многократно использовать запрос для того, чтобы записи представлялись в соответствии с определенными условиями и в оговоренной последовательности. 4. Практическое задание. 1. Откройте форму Продавцы. Выполните переключение между Режимом формы и Режимом таблицы с помощью команд меню и кнопок панели инструментов. 2. В табличном представлении данных о продавцах скройте столбец Номер, сузьте столбцы Город и Комиссионные. 3. Восстановите первоначальный вид таблицы Продавцы. 4. В режиме формы найдите запись о продавце, проживающем в городе Бронницы. 5. В режиме формы найдите запись о продавце Ольшевский, а при задании параметров поиска введите фамилию с маленькой буквы, выберите тип совпадения С любой частью поля, отключите опцию Только в текущем поле и включите опцию С учетом регистра, как показано на рис. 20.
Рис. 20. Окно Поиска для выполнения задания № 5. 6. В режиме таблицы создайте фильтр для выборки записей о продавцах, проживающих в Липецке, используя Расширенный фильтр.
31
7. Удалите фильтр записей о продавцах. 8. Отсортируйте записи формы Продавцы в алфавитном порядке их имен. 9. Откройте форму Заказы и отсортируйте записи по убыванию стоимости заказа. 10. В режиме таблицы создайте фильтр для выборки записей о заказах, произведенных после 10.03.96 в Липецке, используя Расширенный фильтр. (Обратите внимание на добавленные программой разделители # появившиеся в строке Условие отбора после нажатия клавиши Enter.) 11. Произведите выборку заказов выполненных продавцом с номером 1002, пользуясь кнопками фильтров панели инструментов.
Microsoft Access 97. Работа № 4 Установление связей между таблицами. Создание запросов. Цель работы:
Изучение типов связей и создание связей между таблицами. Изучение принципа создания запросов, определения критериев запроса и сортировки данных. Знакомство с назначением и использованием операторов в логических выражениях.
Поиск данных в одной таблице, фильтрация и сортировка, – мощные средства доступа к базе данных, но для большинства баз данных их недостаточно. Эти средства не позволяют выбирать информацию одновременно из нескольких таблиц, что часто бывает нужно. Например, в учебной базе данных может потребоваться найти список всех заказов, сделанных покупателями из Саратова. Или получить ответ на вопрос: "Сколько таким-то продавцом оформлено заказов?". Вопросы такого рода можно задавать базе данных с помощью запросов – средств, позволяющих извлекать информацию одновременно из нескольких таблиц. Поскольку запрос работает с несколькими таблицами, для получения корректных данных очень важно правильно задать связь между таблицами базы данных. 1. Установление связей между таблицами. В учебной базе данных связи между таблицами осуществляются через целочисленные ключевые поля Номер, хранящие уникальные номера записей каждой таблицы. Например, в каждой записи таблицы Заказы хранится номер покупателя, сделавшего заказ и номер продавца, оформившего этот заказ. Если вас интересует более подробная информация о покупателе, сделавшем определенный заказ, то вы должны, зная номер покупателя, обратиться к соответствующей записи таблицы Покупатели. При заполнении таблиц данными вы ясно видели связи между таблицами и поэтому можете их использовать для поиска данных в таблице вручную, открывая связанные таблицы и отыскивая нужные данные. Чтобы MS Access смог автоматически извлечь нужную вам информацию, необходимо сообщить ему о существующих в базе данных связях между таблицами. 1.1. Типы связей между таблицами. MS Access имеет дело с базами родственных данных, благодаря чему вы можете одновременно работать с данными из нескольких таблиц. Сформировав таблицы базы данных и установив ключевое поле для каждой таблицы, вы можете создать между таблицами взаимоотношения. Они
32
помогут MS Access связывать данные в каждом новом запросе, форме или отчете, включающем обе связанные таблицы. В MS Access вы можете создать два типа связей: отношение один-ко-многим или отношение одинк-одному. В первом случае, более распространенном, одна запись таблицы связана с множеством записей другой таблицы. Скажем, покупатель может сделать один или несколько заказов. Поэтому одной записи в таблице Покупатели, которая в данной связи будет первичной таблицей, может соответствовать несколько записей в таблице Заказы, которая называется связанной таблицей (рис. 1.). В случае менее распространенного отношения один-к-одному одной записи в первичной таблице соответствует только одна запись связанной таблицы. Подобный тип связи имеет смысл устанавливать в том случае, когда вы хотите, например, разделить данные на открытые и конфиденциальные. Например, есть база данных, содержащая сведения о сотрудниках фирмы. Фамилия, имя и должность сотрудников фирмы могут располагаться в одной таблице, а данные о зарплате – в другой. Между этими таблицами будет существовать отношение один-к-одному, поскольку каждой записи в одной из них соответствует единственная запись в другой.
Рис. 1. Связь типа один-ко-многим между двумя таблицами. Связи между таблицами часто помогают убедиться в том, что таблицы лишены противоречивых сведений: например, что в таблице Заказы нет заказов, которым не соответствовал бы какой-либо покупатель из таблицы Покупатели. 1.2. Создание связи между двумя таблицами. Если вы хотите создать связь между двумя таблицами, следует прежде убедиться, что в них есть совпадающие поля. Ключевое поле первичной таблицы соответствует аналогичному полю связанной таблицы, Последнее иногда называют внешним ключом. Определите, какая из таблиц будет первичной, а какая - связанной. Если связанная та6лица не содержит поля данных, совпадающего с ключевым полем первичной таблицы, необходимо добавить его к связанной таблице – лишь в этом случае вы сможете создать связь между таблицами. Связанные поля должны содержать совпадающие данные и характеризоваться
33
одинаковым типом данных. Поля данных цифрового типа должны также иметь одинаковый формат. После того, как связь установлена, вы не сможете изменять или удалять поля, на которых она основана, до тех пор, пока не удалите саму связь. Создание и удаление связей производится в окне Схема данных. Чтобы вызвать это окно, выберите команду меню Сервис–Схема данных… (конечно, при этом должна быть открыта ваша база данных). Появится окно Схема данных. Если вы открываете его не впервые, окно появится точно в таком виде, в каком вы сохранили его в последний раз. При первом установлении связи окно будет пустым, и сразу же появится диалог Добавление таблицы (рис. 2).
Рис. 2. Диалоговое окно Добавление таблицы. Теперь добавьте таблицы к окну Схема данных: 1. Если MS Access автоматически не выводит на экран диалог Добавление таблицы, выберите команду меню Связи–Добавить таблицу. 2. В закладке Таблицы выделите строку Заказы, а затем щелкните на кнопке Добавить. 3. Таким же образом поступите с таблицами Покупатели и Продавцы. Названия каждой из таблиц со списками полей появятся в окне Схема данных. 4. Щелкните на кнопке Закрыть, чтобы закрыть диалог Добавление таблицы. Расположите таблицы в окне Схема данных так, как показано на рис. 3. Для перемещения таблицы нажмите левую кнопку мыши на названии таблицы и, не отпуская кнопку мыши, переместите таблицу в нужное место.
Рис. 3. Три таблицы в окне Схема данных.
34
Теперь установим связь между таблицами Заказы и Покупатели. Т.е. установим связь списка всех покупателей с заказами, которые они сделали, а в качестве сравнительного параметра используем уникальный номер покупателя. Для этого проделайте следующее: 1. Находясь в окне Схема данных, перетащите поле Номер (удерживая на нем нажатой левую кнопку мыши) из списка полей таблицы Покупатели на поле Номер покупателя в списке Заказы. Тем самым вы перемещаете поле из первичной таблицы Покупатели в связанную таблицу 3аказы. Когда вы отпускаете клавишу мыши, появляется диалог Связи (рис. 4). Удостоверьтесь, что в списке находятся имена связываемых полей. 2. Щелкните на кнопке Создать. Теперь таблица Покупатели связана с таблицей Заказы. Вы видите линию, которая соединяет два связанных поля в этих таблицах (рис. 5). Связь будет сохраняться до тех пор, пока вы сами ее не удалите.
Рис. 4. Диалоговое окно Связи. Показана связь поля Номер таблицы Покупатели и поля Номер покупателя таблицы Заказы.
Рис. 5. Связь между таблицами установлена. В учебных целях удалите только что созданную связь, чтобы затем восстановить ее заново: 1. Щелкните на линии между та6лицами Покупатели и Заказы. Линия станет толще (рис. 6).
35
Рис. 6. Щелчок на линии связи выделяет ее. 2. Нажмите клавишу Delete, чтобы удалить связь. 3. В появившемся окне с сообщением MS Access спрашивает подтверждение на удаление связи из базы данных, щелкните на кнопке Да, подтверждая тем самым свое намерение удалить связь. MS Access убирает линию, соединяющую две таблицы. Больше они не связаны. Задание. Создайте три связи: 1. связь таблиц Покупатели и Заказы; 2. связь таблиц Продавцы и Заказы; 3. связь таблиц Продавцы и Покупатели. Окно Схема данных в результате должно выглядеть так, как показано на рис. 7.
Рис. 7. Связи между таблицами учебной базы данных. Сохраните созданные связи: 1. Дважды щелкните на кнопке системного меню окна Схема данных, чтобы закрыть его. MS Access спросит вас, хотите ли вы сохранить изменения окна Схема данных. Заметим, что от вашего решения зависит лишь графическое представление окна, установленные же связи останутся в вашей базе данных. 2. Щелкните на кнопке Да, чтобы сохранить представление окна связей. Открыв в следующий раз окно Схема данных, вы увидите его таким, каким только что сохранили. 2. Создание запросов. 2.1. Что такое запрос? Запрос определяет группу записей, с которыми вы хотите работать. Его можно сделать, например, в такой форме: "Предъявите мне имена покупателей, проживающих в таком-то городе, сделавших
36
заказы на такую-то сумму". Ответом будет таблица с временным набором данных, которая называется динамическим набором. Записи динамического набора могут включать поля из одной или нескольких таблиц (рис. 8).
Рис. 8. Динамический набор данных из разных таблиц Вы можете спросить, а почему просто-напросто не включить все нужные вам данные в одну большую таблицу? В ответе на этот вопрос содержится секрет реляционной базы данных. Вы создаете отдельную таблицу по каждой теме, например, о покупателях или о заказах, а в результате получаете систему, обладающую исключительной гибкостью соединения данных. Запросы используются примерно так же, как и таблицы. Вы можете открыть запрос и просмотреть соответствующий динамический набор данных в табличном представлении. На базе запроса вы можете создать форму или отчет. Кроме того, вы можете обновить данные в динамическом наборе и сохранить эти изменения, включив их в таблицу, где эти данные хранились изначально. Исключительная гибкость запроса дает вам возможность пользоваться им куда чаще, чем таблицей. Дело в том, что вы можете применить запрос для сортировки данных или для просмотра некоего целевого подмножества сведений из вашей базы данных. Например, вместо того чтобы просматривать всю таблицу Покупатели, вы можете просмотреть сведения только о клиентах из определенного региона, да еще при этом увидеть данные о сделанных ими заказах. Работая с фильтром (в предыдущей лабораторной работе), вы брали информацию лишь из одной таблицы. Прибегая к запросу, можно востребовать информацию из нескольких областей вашей базы данных и, кроме того, сохранить запрос для повторного использования или создать на базе имеющегося запроса новый. 2.2. Запросы по образцу. В окне Запрос на выборку (рис. 9) вы конструируете запрос с помощью средства, именуемого запросом по образцу (Query By Example, QBE-запрос). При этом вы формируете запросы, перетаскивая поля из верхней части окна Запрос на выборку в бланк запроса по образцу, и размещаете поля в бланке именно в той последовательности, в какой хотите видеть их в табличном представлении. Иными словами, вы используете бланк QBE, чтобы указать MS Access, какими вы хотели бы видеть результаты вашего запроса. Работа с бланком запроса напоминает создание фильтра, но при формировании запроса вы можете извлекать данные сразу из нескольких таблиц. После выбора полей вы используете бланк QBE-запроса для дополнительной настройки запроса на выборку записей, которые вас интересуют (рис. 9).
37
Рис. 9. Настройка QBE-запроса. Бланк запроса по образцу облегчает процедуру формирования запроса. Зачастую один вопрос влечет за собой другой, и запрос приходится модифицировать. Например, вы начали с поиска всех покупателей из определенного города. Затем, внеся незначительные дополнения в условие отбора бланка QBE, вы сможете найти всех покупателей из данного региона, которые заказали товар на заданную сумму. Наконец, вам может понадобиться перечень покупателей из данного города, которые сделали заказ на определенную сумму в заданный период времени, например за декабрь минувшего года. Процесс постепенного уточнения запроса может продолжаться до тех пор, пока он не будет сформулирован таким образом, чтобы полностью ответить на поставленный вопрос и представить только интересующие вас записи.
2.3. Создание и сохранение запроса. Начнём с простого запроса, использующего одну таблицу. Он будет выполнять действия, которые выполнимы и с помощью фильтра, но в учебных целях этот запрос очень полезен. Предположим, вам нужны данные о покупателях, проживающих в Липецке и Саратове – их номера, имена и рейтинги. Эта информация хранится в таблице Покупатели. Выполните следующие действия: 1. В окне База данных щелкните на ярлычке Запрос. 2. Щелкните на кнопке Создать. 3. В открывшемся диалоге Новый запрос выберите Конструктор и нажмите OK. Открывается окно Запрос на выборку и второе диалоговое окно Добавление таблицы, содержащее список таблиц (или запросов), которые будут использованы для формирования запроса (рис. 10).
38
Рис. 10. Окно Добавление таблицы со списком таблиц базы данных для формирования запроса. 4. Дважды щелкните на строке с именем таблицы Покупатели, или выберите ее и нажмите кнопку Добавить, после чего щелкните на кнопке Закрыть. В верхней части окна Запрос на выборку появится список полей таблицы Покупатели (рис. 11). В нем вы должны выбрать поля, которые будут включены в запрос.
Рис. 11. Список полей таблицы Покупатели. Теперь надо включить в запрос поля: 1. Перетащите имя поля Номер из списка полей в первую клетку строки Поле бланка запроса по образцу, либо щелкните на первой клетке и выберите в списке поле Номер и нажмите 2. Таким же образом перетащите в клетки бланка поля Имя, Город и Рейтинг. В итоге бланк запроса будет содержать четыре поля из пяти имеющихся в таблице Покупатели (рис.12). Чтобы просмотреть все клетки с именами полей, вам, возможно, придется переместиться по бланку вправо с помощью горизонтальной полосы прокрутки.
39
Рис. 12. Заполненный бланк запроса по образцу. Сохраните запрос и дайте ему имя: 1. Выберите команду меню Файл–Сохранить. 2. В появившемся диалоге Сохранение введите имя запроса Покупатели в Липецке и Саратове щелкните на кнопке OK. Новое имя запроса появится в строке заголовка окна запроса. Кроме того, MS Access добавит имя этого запроса в список ярлычка Запросы в окне База данных для дальнейшего использования. 3. Закройте окно запроса Покупатели в Липецке и Саратове и проверьте наличие его в базе данных на ярлычке Запросы. 2.4. Установка условия отбора нужных записей. Если вы прямо сейчас откроете запрос (нажав кнопку Открыть в окне База данных), то увидите записи обо всех покупателях из таблицы Покупатели. Поскольку требуются сведения только о покупателях из Липецка и Саратова, необходимо поставить соответствующее условие отбора. Для установки условия отбора вам может понадобиться выражение, по которому MS Access будет выбирать записи. Если, например, вам нужны поля с числовыми значениями, превышающими 5, то в строке Условие отбора надо ввести выражение >5. Применение выражений в запросе аналогично использованию фильтра, с которым вы познакомились в предыдущей работе. Нам нужно получить список покупателей из Липецка и Саратова, поэтому условие отбора должно быть задано для столбца Город. Для задания этого условия выполните следующие действия: 1. В окне База данных в списке запросов выделите запрос Покупатели в Липецке и Саратове и нажмите кнопку Конструктор. (Если же этот запрос уже открыт в табличном режиме, перейдите в режим Конструктора, для этого на панели инструментов нажмите кнопку Конструктор ). 2. В бланке запроса щелкните мышью в ячейку строки Условие отбора под полем Город. 3. Напечатайте Липецк и нажмите клавишу Enter. MS Access автоматически поставит кавычки по обеим сторонам введенного слова, указывая на его принадлежность к текстовому типу данных (рис. 13). Таким образом, вы задали критерий для поиска и отбора данных в таблице Покупатели.
40
Рис. 13. Бланк Запроса с одним критерием отбора записей. 4. Для начала выполнения Запроса по заданному критерию выберите команду в меню Запрос–Запуск или на панели инструментов нажмите кнопку . Результатом выполнения запроса по этому условию (критерию) отбора станет таблица только с двумя покупателями из Липецка. 5. Снова перейдите в режим Конструктора. Условие отбора может одержать множество критериев для поиска и отбора данных. В бланке Запроса ниже строки Условие отбора имеется строка или: в которой можно задать дополнительный критерий отбора записей. Зададим следующий критерий для отбора: найти покупателей из г. Саратов. Выполните следующее. 6. В клетке под словом "Липецк" напечатайте Саратов и нажмите клавишу Enter (рис. 14).
Рис. 14. Бланк Запроса с двумя критериями отбора записей. Обратите внимание! Теперь Условие отбора записей определено двумя критериями: выбрать покупателей из г. Липецк или из г. Саратов. В этом случае будут выбраны только те записи о покупателях, которые в поле Город имеют названия этих городов, т.к. критерии "Липецк" и "Саратов" связаны условием отбора ИЛИ. В результате выполнения запроса мы получим список различных покупателей, которые в поле Город имеют ИЛИ запись Липецк, ИЛИ запись Саратов. 7. Дайте команду Запуск. Результат выполнения запроса с двумя условиями отбора представлен на рис. 15. Заданному условию соответствует найденное число покупателей: два из Саратова и два из Липецка.
Рис. 15. Результаты выполнения запроса по двум критериям отбора. В нашем случае формирования Запроса было задано условие выборки покупателей, согласно которому должны быть выбраны сведения о покупателях из города Липецк или из города Саратов.
41
Это условия выборки можно записать в виде одного логического выражения с использованием специального оператора, выполняющего действие ИЛИ. MS Access имеет такие операторы, например оператор OR – англ. ИЛИ, используемый в логических выражениях для отбора записей удовлетворяющих ИЛИ одному ИЛИ другому условию. Чтобы скомбинировать выражения с условием И, используется оператор AND, в этом случае данные должны удовлетворять всем условиям выборки одновременно. 8. Перейдите в режим Конструктора. 9. В бланке Запроса удалите оба критерия для отбора "Липецк" и "Саратов" (щелкните на ячейке с записью и удалите ее с помощью клавиши Delete, перейдите в следующую ячейку с записью и тоже удалите ее). 10. Дайте команду Запуск для выполнения Запроса. Полученный результат не должен Вас шокировать, ведь Вы сами только что удалили все критерии Условия отбора. Теперь таблица Запроса отображает сведения обо всех имеющихся покупателях. 11. Перейдите в режим Конструктора. 12. В бланке Запроса в ячейке строки Условие отбора столбца Город напечатайте Липецк OR Саратов и нажмите клавишу Enter (рис. 16). Затем дайте команду Запуск для выполнения Запроса, полученная таблица полностью совпадает с таблицей на рис. 15.
Рис. 16. Бланк Запроса по двум критериям отбора с использованием оператора OR (ИЛИ).
2.5. Сортировка в режиме запроса Для того чтобы освоить процедуру сортировки в Запросе, расположим покупателей в алфавитном порядке. 1. Перейдите в Режим Конструктора, чтобы внести дополнения в бланк Запроса. 2. Щелкните в ячейке строки Сортировка в столбце Имя. 3. В правой части ячейки появится кнопка со стрелкой вниз (кнопка вложенного списка) откройте список и выделите в нем строку По возрастанию, чтобы расставить записи в алфавитном порядке (рис. 17).
Рис. 17. Бланк Запроса с заданным направлением Сортировки. 4. Дайте команду Запуск, чтобы увидеть результаты выполнения сортировки. Теперь записи в столбце Имя расположены в алфавитном порядке (рис. 18).
42
Рис. 18. Отсортированные записи по полю Имя. 2.6. Скрытие поля. Предположим, что выводить на экран поле Город не требуется. "Спрятать" ненужное поле в бланке запроса можно с помощью строки Вывод на экран: 1. Перейдите в Режим Конструктора. 2. В строке Вывод на экран в поле (столбце) Город снимите флажок (рис. 19). Запрос попрежнему будет учитывать любое условие, внесенное в этот столбец, но в табличном представлении этого поля уже не будет.
Рис. 19. При снятом флажке значения поля не выводятся на экран. 3. Дайте команду Запуск для выполнения Запроса с внесенными изменениями. Запрос в Режиме таблицы показан на рис. 20. Поле Город на экран не выводится.
Рис. 20. Ненужное поле на экране не видно. 4. Выберите команду меню Файл–Сохранить, чтобы сохранить внесенное изменение. После этого закройте запрос. 5. Просмотрите список запросов в окне База данных. Убедитесь, что созданный вами запрос Покупатели в Липецке и Саратове присутствует в списке. 2.7. Создание запроса на основе связанных таблиц. Корректную связь между разными таблицами базы данных Microsoft Access обеспечивает за счет соответствующих друг другу значений однотипных полей этих таблиц. Связи всех трех таблиц в учебной базе данных были установлены в начале этой работы.
43
Теперь создадим Запрос на основе связанных таблиц: "Какие покупатели и у каких продавцов сделали заказы в течение с марта по май 1996 года?" В результате Запроса на экран должны выводиться Номера заказов, Имена покупателей, Стоимость заказов, Даты покупки заказов, Имена продавцов. Для выполнения данного задания потребуются все три таблицы учебной базы данных – Заказы, Покупатели и Продавцы. Создайте такой Запрос для этого выполните следующие действия: 1. В окне База данных щелкните на ярлычке Запрос, а затем на кнопке Создать. 2. В диалоге Новый запрос выберите Конструктор. Открывается окно Запрос-выборка и появляется второй диалог Добавление таблицы. 3. Выделите в списке таблицу Заказы и щелкните на кнопке Добавить. 4. Аналогичным образом добавьте в запрос таблицы Покупатели и Продавцы. 5. Закройте диалог щелчком на кнопке Закрыть. Списки полей таблиц Заказы, Покупатели и Продавцы появятся в окне Запрос-выборка. Обратите внимание на то, что между этими списками полей автоматически возникают соединительные линии, поскольку между таблицами уже установлены связи (рис. 21).
Рис. 21. Существующие связи между таблицами. 6. Выберите команду меню Файл–Сохранить. 7. Присвойте запросу имя Информация о заказах и щелкните на кнопке ОК. Поскольку бланк Запроса может содержать поля с одинаковыми названиями, но принадлежащие разным таблицам в Microsoft Access имеется возможность дополнить бланк новой строкой, в которой будут отображены названия тех таблиц, чьи поля включены в бланк запроса: 1. Выберите в меню Вид команду Имена таблиц (в бланке под строкой Поле появится строка Имя таблицы). 2. Перетащите из таблицы Заказы в бланк запроса по образцу следующие поля: Номер, Стоимость, Дата покупки. 3. Из таблицы Покупатели перетащите в бланк запроса поле Имя. 4. Из таблицы Продавцы перетащите в бланк запроса поле Имя (рис. 22).
44
Рис. 22. Заполненный бланк запроса с включенной строкой Имя таблицы. Теперь надо задать условие отбора и просмотреть результаты. Для отбора заказов, сделанных с марта по май 1996 года включительно, вы можете воспользоваться выражением с использованием оператора Between...And (От...До), который выполняет выборку в период ОТ одной даты ДО другой даты включительно. При задании Условия отбора можно воспользоваться только одним оператором AND (И), который выполняет выборку в период ОТ одной даты ДО другой даты не включая, крайние значения дат. Например: при использовании оператора Between...And в логическом выражении Between 1-03-96 And 31-05-96, в список попадут все заказы данного периода, включая сделанные именно 1 марта и 31 мая; при использовании оператора And в логическом выражении >1-03-96 And <31-05-96., в список попадут все заказы данного периода, кроме сделанных именно 1 марта и 31 мая, поэтому надо указывать другой диапазон дат (от 29 февраля до 1 июня). Задайте условие отбора: 1. В строке Условие отбора под полем Дата покупки напечатайте Between 1-03-96 And 31-05-96, либо >29-02-96 And <1-06-96, а затем нажмите клавишу Enter. Формат даты сразу же поменяется и появится символ #, окаймляющий обе даты. 2. Для того чтобы это довольно длинное выражение уместилось в одну строку, лучше расширить соответствующий столбец бланка запроса. Чтобы размеры столбца стали оптимальными, щелкните дважды на правом разделителе полей в верхней части столбца Дата покупки (рис. 23).
Рис. 23. Вид бланка с увеличенной шириной столбца для условия отбора. 3. Дайте команду Запуск для выполнения Запроса, чтобы просмотреть интересующие вас заказы (рис. 24).
45
Рис. 24. Просмотр результатов запроса. 4. Сохраните запрос командой Файл–Сохранить и затем закройте запрос. 3. Практическое задание. 1. Создайте запрос "Продавцы с большими комиссионными", извлекающий из таблицы Продавцы данные о тех продавцах (имя, город и комиссионные), чьи комиссионные превышают 12% (т.к. 12% составляют от 100% и равны 0,12, то в Условие отбора следует ввести выражение >0,12). 2. Создайте запрос "Покупатели с рейтингом, больше 100". Запрос должен работать с таблицами Покупатели и Продавцы и выбирать данные о покупателях, чей рейтинг больше 100 – имя покупателя, его рейтинг и имя продавца. 3. Создайте запрос "Заказы стоимостью от 1500 до 5000", работающий со всеми тремя таблицами учебной базы данных. Запрос должен извлекать данные о заказах, лежащих в указанном диапазоне цен: номер заказа, стоимость, дату покупки, имя покупателя и имя продавца. В запросе "Заказы стоимостью от 1500 до 5000" отключите вывод на экран номера заказа и отсортируйте заказы по возрастанию стоимости, при составлении выражения для Условия отбора используйте оператор And. 4. Закройте все запросы и в окне базы данных на закладке Запросы просмотрите список составленных запросов, сравните с рис. 25.
Рис. 25. Список Запросов в окне базы данных. 5. С помощью Мастера форм создайте форму на основе запроса "Заказы стоимостью от 1500 до 5000" (Мастер форм использовался в Работе № 2). Откройте Запрос "Заказы стоимостью от 1500 до 5000". Разместите на экране оба окна так, чтобы они не закрывали друг друга и сравните данные Формы с данными такого же Запроса. 6. С помощью Расширенного фильтра получите ту же информацию, что и с помощью Запроса "Продавцы с большими комиссионными", в полученной таблице скройте столбец Номер (фильтры рассматривались в Работе № 3).
46
7. Сверьте список имеющихся у Вас Форм в учебной базе данных с рис. 26.
Рис. 26. Список Форм в окне базы данных.
Microsoft Access 97. Работа № 5 Создание и редактирование отчетов. Цель работы:
Знакомство с принципами импорта внешних данных в свою Базу данных. Создание детального отчета. Создание отчета по сгруппированным данным. Редактирование отчета с помощью Конструктора.
Отчеты обеспечивают наиболее гибкий способ просмотра и распечатки итоговой информации. Они позволяют отображать на экране и печатать информацию с любой необходимой степенью детализации. Существует три вида отчетов: ¾ Ленточные – в них данные отображаются построчно, причем данные каждого поля занимают отдельный столбец; ¾ Отчеты в столбец – в них все поля отображаются в одном столбце и выравниваются по левому краю. Данный тип отчетов очень похож на Формы, но в них нельзя производить редактирование или добавление записей, а только просмотреть содержимое и распечатать его; ¾ Почтовые наклейки – используются для печати почтовых наклеек, которые содержат сведения из какой-либо таблицы базы данных. В данной работе рассматривается формирование отчетов с помощью Мастера отчетов двух типов– детальных и по сгруппированным данным. 1. Импорт данных из другой базы данных.
Для построения отчетов в нашей базе данных слишком мало записей – все они вполне поместятся на одной печатной странице. Чтобы не вводить вручную дополнительные записи в каждую таблицу, в Microsoft Access имеется возможность переноса сведений из внешних источников данных в свою БД. Эта процедура называется импортом внешних данных. Выполним импорт данных из готовой базы данных, которая хранится в папке C: \ Мои документы \ Шаблон для Access\ data.mdb. Так как структура таблиц этой БД совпадает со структурой нашей учебной БД, поэтому записи из таблиц data.mdb можно перенести в таблицы вашей БД с помощью буфера обмена. Для импорта данных из data.mdb выполните следующие действия: 1. Откройте свою базу данных через меню Файл–Открыть базу данных…. 2. Перейдите на ярлычок Таблицы (список состоит из 3-х таблиц). 3. Для того чтобы получить дополнительные записи для своих таблиц Продавцы,
47
Покупатели и Заказы из другой БД, надо импортировать внешние объекты с этими данными с помощью команды Файл–Внешние данные–Импорт… (рис.1).
Рис. 1. Меню выбора команды для импорта внешних данных. 4.
В появившемся окне Импорт надо найти и открыть папку с файлом data.mdb. Обратите внимание это окно очень похоже на окна Открытие (Сохранение) файла (рис. 2). Затем в этом окне нажмите кнопку Импорт.
Рис. 2. Окно для выбора импортируемого файла. 5.
В окне Импорт объектов щелкните на ярлычке Таблицы и просмотрите предлагаемый список таблиц для их последующего импорта (рис. 3). Рассмотрим состав окна Импорт объектов. Справа от поля со списком таблиц имеются кнопки, при нажатии на которые, выполняется определенная команда:
Рис. 3. Окно импорта объектов БД. Выделить все – выбирает все объекты в списке (для выбора в списке нескольких объектов достаточно мышью щелкнуть на одном объекте, затем на другом и т.д. для снятия выбора с объекта надо повторно щелкнуть мышью на нем); Очистить все – отменяет сделанный выбор со всех ранее выбранных объектов для выбора новых объектов; Параметры >> – кнопка открывает строку параметров для последующего задания параметров
48
импорта сведений из другой базы данных. Например, импорт данных с сохранением имевшихся связей между таблицами или запросами, с включением специальных панелей инструментов, включением всех спецификаций созданных в импортируемой базе данных. Также можно выбрать режим импорта с сохранением структуры таблиц и содержащихся в них данных, либо только структуры таблицы без данных и, наконец, выбрать вариант сохранения импортируемых запросов: в виде запроса или в табличном виде. 6. В окне Импорт объектов выберите в списке таблицу Продавцы1 и нажмите OK. В списке таблиц вашей базы данных появится еще одна таблица, которая только что была импортирована – Продавцы1 (рис. 4).
Рис. 4. Список таблиц учебной БД с импортированной таблицей. Примечание. Если случайно для импорта была выбрана таблица Продавцы, то при переносе ее в вашу БД программа автоматически добавит к имени таблицы цифру 1. 7.
Откройте таблицу Продавцы1. Выделите все записи этой таблицы командой Правка– Выделить все записи и скопируйте их в буфер обмена командой Правка–Копировать. Закройте таблицу Продавцы1. 8. Откройте свою таблицу Продавцы с пятью записями и добавьте в нее записи из буфера обмена командой Правка–Добавить из буфера. На дополнительный вопрос о вставке записей нажмите кнопку Да. Закройте таблицу Продавцы. 9. Удалите таблицу Продавцы1 из своей базы данных (клавиша Delete). 10. Повторите действия оговоренные в п.п. 3–9 для таблиц Покупатели1 и Заказы1. Просмотрите содержимое таблиц своей базы данных. В ней должны быть записи примерно о 120 заказах, 20 продавцах и 60 покупателях. Обратите внимание, что ранее созданные запросы и формы также претерпели изменения – в них добавились новые записи, удовлетворяющие назначенным условиям отбора. Например: ¾ Форма "Заказы стоимостью от 1500 до 5000" первоначально имела 5 записей, удовлетворяющих этому условию, а после импорта новых данных стала иметь 43 записи. ¾ Запрос "Покупатели в Липецке и Саратове" первоначально состоял из 4 покупателей (2 из Липецка, 2 из Саратова), а теперь содержит записи еще о 5 покупателях, удовлетворяющих заданному условию отбора (все из Саратова). ¾ Запрос "Продавцы с большими комиссионными" (комиссионные > 0,12) первоначально содержал сведения только о 2 продавцах, а теперь этот перечень увеличился до 9 человек. Вывод. После завершения импорта данных, изменения произошли не только в исходных таблицах, которые стали содержать гораздо больше сведений, но и в созданных на их основе
49
Запросах и Формах. 2. Подготовка объектов базы данных к печати. В Access можно распечатать любую таблицу, запрос или форму. Для примера в окне базы данных выберите таблицу Покупатели и дайте команду Файл–Предварительный просмотр, либо на панели инструментов нажмите кнопку Щелчком мыши в любом месте появившегося документа можно увеличить/уменьшить масштаб просмотра. В увеличенном масштабе документ будет выглядеть подобно рис. 5.
Рис. 5. Документ с данными таблицы Покупатели подготовленный для печати. Задание. Перейдите на закладку Формы в окне базы данных и откройте форму "Заказы стоимостью от 1500 до 5000", затем дайте команду Файл–Предварительный просмотр. Если при увеличении масштаба просмотра данные не умещаются в окне просмотра, мышью растяните границы этого окна. Попробуйте режим Предварительного просмотра этой формы в табличном виде и виде формы. Однако подобный способ формирования документа для печати не отвечает всем требованиям оформления официальных документов, тем более его внешний вид не позволяет быстро увидеть требуемые записи, а выдает ее в виде обычной таблицы. Для решения этой проблемы в Access имеется возможность подготовки любых данных в виде отчета. При этом отчет может быть оформлен так, чтобы сразу отображать данные в виде удобном для дальнейшего анализа сведений.
50
3. Создание детального отчета. Access содержит средства, позволяющие представить отчет в хорошо оформленном и легко читаемом виде. Детальный отчет содержит ту же информацию, что и таблица или запрос, но в нем имеются и дополнительные элементы: заголовок отчета, верхний и нижний колонтитулы. Самый быстрый способ создать отчет – использовать Мастер отчетов. Эта программа размещает поля отчета и представляет данные в одном из выбранных вами стиле. После создания отчета вы можете переделать его по своему желанию в режиме Конструктор. Опишем основные элементы отчета. Их расположение показано на рис. 6.
Рис. 6. Элементы детального отчета. Заголовок отчета (№ 1 на рис. 6) расположен в верхней части левой страницы и обычно включает в себя имя отчета и ткущую дату. Верхний колонтитул (№ 2 на рис. 6) расположен в верхней части каждой страницы отчета и содержит заголовок столбцов таблицы. Область данных (№ 3 на рис. 6) расположена между верхним и нижним колонтитулами и содержит записи запроса, выбранного в качестве базового. Нижний колонтитул расположен в нижней части каждой страницы отчета. Часто он содержит номер страницы. Область примечаний (№ 4 на рис. 6) отчета расположена в самом конце отчета. В ней содержатся, например, итоговые суммы по колонкам таблицы. Сформируем отчет о покупателях из Липецка и Саратова. Запрос на выборку таких покупателей из БД вы сделали в предыдущей лабораторной работе. Процедура формирования Отчета с помощью Мастера отчетов очень похожа на создание Формы с помощью Мастера форм, которую вы изучили в работе № 2.
51
Для создания Отчета выполните следующие действия: 1. Выберите закладку Отчет в окне базы данных. Нажмите кнопку Создать. 2. В окне Новый отчет выберите режим создания отчета – Мастер отчетов, в качестве источника данных выберите из списка запрос Покупатели в Липецке и Саратове (рис. 7), нажмите кнопку OK для перехода к следующему шагу создания отчета.
Рис. 7. Окно создания нового отчета. 3. В окне Создание отчетов Мастера для выбора отображаемых в отчете полей (рис. 8) выберите поля Имя и Рейтинг. Поле Номер служит для связи таблиц в базе данных, и, будучи выданным в отчете, не является информативным для человека. 4. Перенос этих полей в состав нового отчета осуществляется так – в области Доступные поля: выберите поле Имя и нажмите на кнопку со знаком > это поле переместиться в область Выбранные поля, затем перенесите поле Рейтинг (рис. 8). 5. Для перехода к следующему шагу диалога нажмите кнопку Далее >.
Рис. 8. Выбор полей для включения в отчет. Следующий шаг Диалога предлагает задание уровней группировки данных из выбранных полей (рис. 9). Например, задание группировки по Рейтингу приведет к тому, что в отчете будут представлены группы покупателей имеющих одинаковый рейтинг, а сами рейтинги будут располагаться либо по возрастанию, либо по убыванию значения.
52
Рис. 9. Окно для задания группировки данных.
Рис. 10. Окно определения поля и направления сортировки.
В нашем случае Уровни группировки задавать не будем!!! 6. Нажмите кнопку Далее > для перехода к следующему шагу создания отчета. 7. Выберите в списке полей сортировку по имени покупателей (справа от поля имеется кнопка направление сортировки, при нажатии, на которую изменяется направление сортировки). Проверьте направление сортировки должно быть по возрастанию нажмите кнопку Далее > (рис. 10). 8. В следующем шаге предлагается выбрать вид макета будущего отчета и ориентация листа бумаги для его размещения. Из предложенных мастером макетов отчета чаще всего используются отчеты "В столбец" и "Табличный". Выберите макет отчета "В столбец", Ориентация листа бумаги – книжная (рис. 11). Для перехода к следующему шагу нажмите кнопку Далее >. 9. Параметры следующего шага позволяют выбрать в списке стиль оформления отчета. Различные стили влияют на расположение и количество обрамляющих линий в отчете, внешний вид отчета в столбец не меняется – названия полей слева, в столбце справа от них выводятся данные этих полей (рис. 12). Выберите в списке стиль Строгий и нажмите Далее >.
Рис. 11. Окно задания макета отчета.
Рис. 12. Окно задания стиля отчета.
10. В последнем окне Мастера задайте имя нового отчета "Покупатели в Липецке и Саратове (в столбец)" остальные параметры оставьте без изменений и нажмите кнопку Готово. В окне предварительного просмотра в увеличенном масштабе отчет будет выглядеть так, как показано на рис. 13.
53
Рис 13. Детальный отчет "В один столбец". 11. Закройте окно предварительного просмотра. Назовите отчет "Покупатели в Липецке и Саратове (в столбец)". Теперь посмотрим, как выглядит детальный отчет в виде "Табличный". Аналогично предыдущему отчету, создайте с помощью Мастера отчетов на основе запроса Покупатели в Липецке и Саратове. Внимание!!! При выполнении действий описанных в п.8 в качестве макета отчета укажите "Табличный". Все остальные параметры Мастера выбирайте аналогично созданному отчету "В один столбец". Сохраните его под именем "Покупатели в Липецке и Саратове (табличный)". Сформированный отчет будет выглядеть так, как показано на рис. 14.
Рис 14. Детальный отчет типа "Табличный". Примечание. Рассмотренный алгоритм создания отчета с помощью Мастера отчетов позволяет задать параметры, макет и стиль формируемого отчета по желанию человека. В Access имеется и другие возможности создания отчетов для создания которых не требуется определение всех параметров будущего отчета, а достаточно выбрать источник данных и нажать кнопку OK. 1. Мастер Автоотчет: в столбец создает отчет в столбец (рис. 15).
54
В этом случае программа автоматически перенесет все поля, из источника данных (в нашем случае это Запрос "Покупатели в Липецке и Саратове") в котором будут отражены все поля и записи в том же порядке, как и в Запросе, только представлены они будут в один столбец (рис. 16).
2.
Рис. 15. Окно Новый отчет для выбора Рис. 16. Автоотчет: в столбец. Автоотчета: в столбец. Мастер Автоотчет: ленточный создает отчет в табличном виде (рис. 17). В этом случае программа автоматически переносит все поля, из источника данных (Запрос "Покупатели в Липецке и Саратове") и создает отчет в виде таблицы. Такой отчет полностью повторяет внешний вид и содержание Запроса (рис. 18).
Рис. 17. Окно Новый отчет для выбора Автоотчета: ленточный.
Рис. 18. Автоотчет: ленточный.
Резюме! Сформировать такие отчеты легко и быстро, но они не всегда удовлетворяют поставленной задаче. В нашем случае совершенно не подходят, т.к. не производят отбор покупателей из Липецка и Саратова по их Имени и Рейтингу. 4. Создание отчета по сгруппированным данным. Данные вашей базы данных будут более информативными, если их сгруппировать по определенным категориям. Например, когда вы просматриваете данные по заказам, вам вряд ли покажется удобным работать с длинным списком всех заказов – лучше получить сведения, сгруппированные по городам. И совсем хорошо, если список заказов по каждому городу будет завершаться итоговой суммой, чтобы вы имели возможность быстро определить, где ваши товары продаются лучше всего. Отчеты по сгруппированным данным можно подготовить с помощью Мастера отчетов.
55
Группа представляет собой совокупность родственных записей. Создавая отчет по сгруппированным данным (рис. 19), вы облегчаете работу читателю. Дело не только в том, что такой отчет представляет сгруппированные определенным образом данные, он кроме того, содержит вводную и суммарную информацию по каждой из групп (максимум их может быть 4).
Рис. 19. Элементы отчета с группировкой. Заголовок группы (№ 1 на рис. 19) идентифицирует группу, т.е. представляет её. Область данных (№ 2 на рис. 19) является основной частью группы и содержит соответствующие записи базового запроса. Примечания к группе (№ 3 на рис. 19) содержат суммарные сведения, например, объем продаж товаров данной категории. Примечания к отчету (№ 4 на рис. 19) размещены в самом конце отчета и включают итоговые цифры, например, сумму продаж по всем категориям. Для примера сформируем групповой отчет, содержащий данные о заказах выкупленных покупателями из различных городов. Сразу это выполнить достаточно сложно, т.к. в таблице Заказы отсутствуют данные о городе покупателя. Поэтому предварительно надо создать Запрос, отбирающий данные о стоимости заказа и городе покупателя, сделавшего этот заказ. Создайте такой запрос на основании двух таблиц Заказы и Покупатели (его бланк приведен на рис. 20) и сохраните его под именем Заказы по городам (рис. 21).
56
Рис. 20. Бланк запроса Заказы по городам.
Рис. 21. Запрос Заказы по городам.
На основе этого запроса с помощью Мастера отчетов создайте новый отчет Заказы по городам (групповые вычисления). Для этого выполните следующие действия: 1. Перейдите в окне своей БД на закладку Отчеты и нажмите кнопку Создать. 2. В открывшемся окне Новый отчет выберите Мастер отчетов, а в качестве источника данных выберите запрос Заказы по городам и нажмите OK (рис. 22).
Рис. 22. Окно Новый отчет. 3. На следующем шаге создания отчета перенесите доступные поля в правую область, нажав кнопку >>, затем нажмите Далее >. 4. Выберите тип представления данных Заказы и нажмите кнопку Далее > (рис. 23).
Рис. 23. Выбор типа представления данных.
57
5. Задайте уровень группировки записей. В качестве поля для группировки укажите поле Город и нажмите кнопку >, затем кнопку Далее >. 6. Выберите тип представления данных Заказы и нажмите кнопку Далее > (рис. 23). Следующим шагом необходимо определить порядок сортировки записей и определить какие вычисления следует произвести в этом отчете (рис. 24, рис. 25).
Рис. 24. Окно для задания параметров Рис. 25. Окно Итоги… для определения сортировки и вычисления итогов. параметров вычисления значений. Рассмотрим состав этих окон. ¾ левая часть окна имеет область с образцом будущего отчета; ¾ правая часть содержит 4 области для определения сортировки записей по полям; ¾ внизу имеются кнопки перехода к следующему/предыдущему шагу, отмены и завершения создания отчета; ¾ между областями сортировки и кнопками пошагового перехода имеется кнопка Итоги…, открывающая дополнительное окно для определения параметров вычислений и их отображения в отчете (рис. 25). ¾ функция Sum – суммирует значения в группе в поле Стоимость; ¾ функция Avg – определяет среднее арифметическое всех значений данного поля; ¾ функция Min, Max – выбирает минимальное или максимальное значение в поле; ¾ переключатель Показать определяет отображение в отчете либо данных в каждой группе и итоги по ней, либо только итоговое значение по группе; ¾ флажок в поле Вычислить проценты выражает в процентах отношение итоговой суммы по группе от общей суммы всех записей. 7. Выберите в поле сортировки Стоимость по возрастанию (рис. 24) . 8. Нажмите кнопку Итоги… и установите параметры расчета и отображения данных с итогами как показано на рис. 25. Нажмите кнопку Далее >. 9. В следующем окне задайте макет будущего отчета, выберите по левому краю 1, нажмите кнопку Далее >. 10. Задайте стиль отчета Строгий, нажмите кнопку Далее >. 11. В последнем окне создания отчета присвойте ему название Распределение заказов по городам. Нажмите кнопку Готово. В нашем примере используется простейший запрос, в результирующем динамическом наборе которого имеются два поля – одно используется для группировки, а другое приводится в качестве поля данных в отчете. Также отчет содержит строки с итоговыми суммами по каждой группе и процентным соотношением этой суммы от общего итога всех записей (рис. 26).
58
Рис. 26. Отчет с группировкой данных по полю "Город покупателя" с итогами по каждой группе. Полученный отчет содержит все запрашиваемые сведения, однако его внешний вид не отвечает требованиям удобочитаемости. Во-первых, в конце каждой группы имеется строка, отражающая количество записей в группе, которая составлена грамматически неверно. Во-вторых, итоговая сумма названа латинскими буквами Sum и не имеет обозначения валюты. В-третьих, желательно, чтобы поле Стоимость со всеми данными находилось справа от названия города, а само название города под словом Город. В-четвертых, надо увеличить размер шрифта, используемый в отчете. 5. Редактирование отчета с помощью Конструктора. До настоящего момента, при создании отчетов вы пользовались готовыми шаблонами отчетов, изменяя только некоторые параметры их оформления. Редактирование отчетов в Access осуществляется с помощью Конструктора, в котором можно удалить, добавить или изменить состав и расположение элементов отчета, либо сразу создавать макет нового отчета со всеми необходимыми атрибутами. Использование Конструктора отчетов предполагает высокий уровень знаний всего пакета Microsoft Office. Для работы в режиме Конструктора используется специальная панель инструментов Microsoft Access Панель элементов. Попробуйте изменить уже созданный на основе шаблона отчет "Распределение заказов по городам", используя возможности Конструктора отчетов. Для этого выполните следующие действия: Войдите в режим Конструктора (меню Вид–Конструктор) или нажмите на панели инструментов кнопку (рис. 27).
59
Рис. 27. Окно Конструктора. На первый взгляд окно Конструктора шокирует количеством имеющихся объектов, но при внимательном рассмотрении Вы можете увидеть сходство областей Конструктора с описанием структуры отчета (рис. 19). Каждая область содержит различные объекты: ¾ поля Надпись – используется в отчете в качестве текста или заголовка; ¾ поля Ввода – обычно используются для отображения содержимого полей исходной таблицы или запроса, а также для отображения результатов вычислений, во втором случае поля содержат формулы для вычисления числовых значений или сложные формулы состоящие из расчетной и текстовой (поясняющей, дополняющей) части; ¾ графические элементы (линии, рисунки и т.п.) – используются для оформления заголовков отчета и придания ему привлекательности. Рассмотрим более подробно состав областей Конструктора. ¾ область Заголовок отчета содержит поле с заголовком отчета и элементы его оформления – линии вверху и внизу заголовка; ¾ область Верхний колонтитул – в нашем случае не имеет ни одного элемента; ¾ область Заголовок группы 'Город' содержит поле с надписью Город и справа от него еще одно поле содержащее слово Город, отображающее в отчете названия городов. Ниже находится поле с надписью Стоимость с границами сверху и снизу; ¾ Область данных содержит поле стоимость, которое отображает в отчете данные о стоимости заказов; ¾ область Примечание группы 'Город' содержит поле с формулой. Формула состоит из текстовой части и расчетной. Текстовая часть – "Итоги для Город =", расчетная часть производит подсчет количества записей в группе и отображает в отчете; Имеется поле с надписью Sum и справа от него поле с формулой суммирования стоимостей заказов в группе. Также имеется поле с надписью Процентный и справа от него поле с формулой, вычисляющей долю суммы по группе от общей суммы всех заказов в процентах. ¾ область Нижний колонтитул содержит поле с функцией отображающей текущую дату (Now()) и поле с функцией отображающей количество страниц в отчете; ¾ область Примечание отчета содержит поле с надписью ИТОГО и справа от него поле с формулой расчета общей суммы всех имеющихся заказов.
60
Обратите внимание! Все поля с надписями или формулами также как и любой графический объект имеют прямоугольную форму и маркеры на границах, с помощью которых можно изменить размер этих полей, либо перемещать все поле целиком. Формулы, находящиеся в полях ввода похожи на формулы создаваемые в Excel. Одним из секретов создания привлекательных отчетов является правильное использование и оформление в них полей, поэтому необходимо знать способы размещения и изменения внешнего вида текста в отчетах. Теперь исправьте структуру отчета, изменив состав областей в Конструкторе и некоторые поля с надписями. Изменение содержания полей: 1. Левой кнопкой мыши щелкните на поле Sum , затем нажмите клавишу F2, чтобы войти в режим редактирования самой надписи, либо двойной щелчок мыши на этом поле. 2. Сотрите прежнюю надпись и наберите с клавиатуры Итого по группе: затем нажмите Enter (если новая надпись не умещается в поле растяните правую границу поля с помощью мыши). 3. Аналогично измените, надпись Процентный на Доля в процентах:, при необходимости измените размер этого поля. 4. Исправьте поле с формулой подсчитывающей количество записей в группе. Для этого щелкните мышью на этом поле и нажмите клавишу F2 (или двойной щелчок мыши), затем внесите изменения в нее, в результате формула должна иметь следующий вид: ="Количество заказов в группе: " & "" & Count(*) & "" 5. Перейдите в режим предварительного просмотра отчета, чтобы увидеть изменения в отчете (Вид–Предварительный просмотр). 6. Вернитесь в режим Конструктора. Перемещение полей: Перемещение полей в режиме Конструктора производится следующим образом: надо щелкнуть на перемещаемом поле (активизировать его как графический объект). Затем аккуратно подвести курсор мыши на границу этого поля (курсор должен изменить свой вид на изображение ладони) нажать левую кнопку мыши и удерживая ее переместить поле на новое место. 1.
Перейдите в область Заголовок группы 'Город' и переместите поле Город под надпись Город, а поле Стоимость вверх и вправо, т.е. рядом с надписью Город.
2.
Теперь переместите линии (они также являются графическими объектами) одну над полями Город и Стоимость, а вторую под ними. Остальные линии можно удалить (активизируйте линию и нажмите клавишу Delet).
3.
В области данных переместите поле Стоимость так, чтобы оно располагалось под надписью Стоимость в области Заголовок группы 'Город'.
4.
В области Примечание группы 'Город' переместите поле с формулой для расчета итога по группе так, чтобы правая граница этого поля была под правой границей поля Стоимость в области данных.
5.
Аналогичным образом переместите поле с формулой для расчета процентов, предварительно уменьшив его размер.
61
6.
В области Примечание отчета переместите поле с формулой для расчета общей суммы заказов так, чтобы его правая граница была под правой границей поля Итогов по группе.
7.
Для того чтобы в отчете сразу было видно дату его составления надо переместить поле с функцией Now( ) из области Нижний колонтитул в область Верхний колонтитул. Перед выполнением этой операции расширьте область Верхний колонтитул (поместите курсор мыши на верхнюю границу области, курсор изменит вид на двустороннюю стрелку вверх и вниз, нажмите левую кнопку мыши и удерживая ее протащите вниз, эта операция выполняется так же как в Word и в Excel). Теперь можно переместить туда поле с функцией даты.
8.
Перейдите в режим предварительного просмотра и убедитесь, что дата находится под заголовком отчета, суммы заказов под надписью Стоимость, Итоги по группе под суммами заказов.
Результат внесенных изменений в областях Конструктора показан на рис. 28. Сравните свой результат с рисунком.
Рис. 28. Окно Конструктора с измененными полями. Изменение свойств объектов Конструктора. Каждый объект, находящийся в областях Конструктора обладает своим набором свойств, которые можно вызвать из контекстного меню объекта или меню Вид–Свойства. В закладке Все перечислены все свойства выделенного объекта, остальные закладки содержат свойства определенного характера. Например, объект Линия обладает свойствами, показанными на рис. 29. Объект Надпись обладает другим набором свойств (рис. 30).
62
Рис. 29. Окно свойств объекта Линия.
Рис. 30. Окно свойств объекта Надпись.
Изменение свойств Линии. Изменим свойства линий, находящихся сверху и снизу полей Город и Стоимость в области Заголовок группы 'Город'. 1. Перейдите в область Заголовок группы 'Город' и правой кнопкой мыши щелкните на линии сверху надписей Город и Стоимость, появится контекстное меню, в котором надо выбрать Свойства. 2. В открывшемся окне Свойства Линия, найдите строку Ширина, удалите прежнее числовое значение и наберите с клавиатуры новое – 15 см, нажмите клавишу Enter. 3. В строке От левого края наберите 0 см, нажмите клавишу Enter. 4. В строке Ширина границы выберите из списка 2 пункта, нажмите клавишу Enter. 5. Теперь активизируйте линию под надписями Город и Стоимость, вызовите свойства этой линии и задайте те же параметры: Ширина – 15 см, От левого края – 0 см, Ширина границы – 2 пункта. 6. Закройте окно Свойства Линия и перейдите в режим Предварительный просмотр, убедитесь, что новые параметры линий вступили в силу и отображены в отчете. 7. Вернитесь в режим Конструктора. 8. Найдите другие линии, имеющиеся в вашем отчете, и по очереди удалите их (Delete). Изменение свойств Надписи. 1. Вызовите свойства надписи Город (рис. 30), найдите строку Размер шрифта и введите размер шрифта 14, аналогично измените размер шрифта надписи Стоимость, каждое изменение параметра подтверждайте нажатием Enter. 2. В остальных надписях Конструктора установите размер шрифта – 12. 3. Теперь в отчете надо изменить размер шрифта в полях Ввода. Набор свойств этих полей отличается от свойств Надписи и Линии. Внимание! Имена полей можно увидеть в первой строке (строка Имя) окна свойств. Внесите изменения в эти поля: Поле Ввода Стоимость – размер шрифта 12, формат поля – Денежный. Поле Ввода Поле2 (поле для подсчета заказов) – размер шрифта 12. Поле Ввода Sum_Стоимость" – размер шрифта 14, формат поля – Денежный.
63
Поле Ввода Процентный_Стоимость – размер шрифта 14. Поле Ввода Стоимость ИТОГО Sum – размер шрифта 16, формат поля – Денежный. Поле Ввода Поле12 (поле даты) – размер шрифта 14. 4. Перейдите в режим Предварительный просмотр и убедитесь, что все изменения присутствуют в отчете. Примечание. Если некоторые надписи или данные не полностью отображаются в отчете можно применить команду подбор размера находящихся в нем сведений по размеру данных, либо изменить размер поля – вручную. В первом случае, войдите в режим Конструктора и для каждого поля установите размер – по размеру данных (меню Формат–Размер–по размеру данных) или та же команда в контекстном меню объекта. 5. После выполнения всех операций сохраните внесенные изменения и сравните свой результат с рис. 31.
64
Рис. 31. Отформатированный отчет.
65
6. Практическое задание. 1. Создайте запрос на выборку покупателей из Москвы и присвойте ему имя "Покупатели из Москвы", затем, на его базе создайте два детальных отчета "Покупатели из Москвы (в столбец)" и "Покупатели из Москвы (табличный)". 2. Постройте запрос, выбирающий данные о стоимости заказов и именах покупателей. На его основе создайте отчет с группировкой по именам покупателей. Сохраните его под именем "Заказы с группировкой по покупателям". 3. Постройте запрос на выборку стоимости заказа, имен покупателей и продавцов. Присвойте ему имя "Заказы по продавцам". 4. На основе запроса "Заказы по продавцам" с помощью Мастера отчетов постройте отчет "Заказы с группировкой по продавцам" с группировкой данных и вычислением итогов по группе. В качестве поля для группировки укажите имя продавца, для сортировки – имя покупателя. Сохраните отчет под именем "Заказы с группировкой по продавцам". В получившемся отчете найдите продавца, который оформил заказов на самую большую сумму. 5. С помощью Конструктора измените внешний вид полученного отчета. Измените текст надписи Sum на Итого, примените к полю Sum_Стоимость формат Денежный. Переместите поле с датой из Нижнего колонтитула в Верхний колонтитул и измените размер шрифта в этом поле на 14. 6. Сравните список Запросов и список Отчетов в вашей базе данных с рис. 32 и рис. 33.
Рис. 32. Окно базы данных со списком Запросов.
Рис. 33. Окно базы данных со списком Отчетов.
66