УЧЕБНАЯ ПРАКТИКА ПО ДИСЦИПЛИНЕ «ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ» РАЗДЕЛ «СУБД MS Access» Учебное пособие специальность 090204 «Информационные системы (по отраслям)» Бийск - 2015 2 СОДЕРЖАНИЕ 3 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Данное методическое пособие ориентировано на преподавателей, ведущих практику, а также может использоваться для самостоятельной работы студентов. В данной работе рассматривается направленные теоретический на материал, формирование и приводятся закрепление рекомендуемые практических навыков задания, студентов, рекомендации по их выполнению. Задания подобраны так, чтобы сохранить общую концептуальную линию Информационных технологий и методику обучения технологии работы в программной среде MS Access в процессе выполнения предлагаемых заданий. Практика является дополнением дисциплины Информационные технологии, изучаемой студентами специальности 0902041, Информационные системы (по отраслям). На практике студенты углубляют знания, закрепляют навыки, развивают умения работы с базами данных, полученные в процессе изучения дисциплины Информационные технологии, с учетом требований государственного стандарта. Методическое пособие состоит из пяти тем, первая из которых включает элементы повторения материала, изученного ранее, с включением новых элементов технологии обработки массивов информации. Материал в методическом пособии представлен следующим образом: - Название темы; - Требования к знаниям, умениям и навыкам студентов; - Вопросы повторения, рассматриваемые в указанной теме или отдельном задании; - Вопросы нового изучаемого материала; -Текст задания; - Пометки для преподавателя и студентов; - В конце темы приводится зачетное задание с критериями оценок или примерных образцов полученных результатов на экране, для подведения итогов. В рассматриваемом методическом пособии использованы задачи, разработанные для олимпиад различного уровня. Использование методического пособия поможет преподавателям придерживаться единых методики и требований, предъявляемых к студентам при прохождении практики. Преподаватель может использовать либо все приведенные задачи, либо добавлять свои задания, либо изменять данные, при этом соблюдая требования к изложению темы. 4 В результате прохождения практики студент должен: - создавать БД в режиме таблицы; - задавать форматы полей; - создавать связи между таблицами; - создавать и форматировать формы, подчиненные формы; - создавать запросы различными способами и различных видов; - создавать и форматировать отчеты различных макетов, с итогами и без; - группировать данные в отчете. 5 СИМВОЛЫ, ИСПОЛЬЗУЕМЫЕ В ПОСОБИИ ПАМЯТКА ДЛЯ СТУДЕНТА ОБРАТИТЬ ВНИМАНИЕ ПАМЯТКА ДЛЯ ПРЕПОДАВАТЕЛЯ РАССМОТРЕНИЕ ПРИМЕРА ЗАПОМНИТЬ 6 РАЗДЕЛ 2. БАЗЫ ДАННЫХ СУБД ACCESS Тема 2.1 Форматы полей Студент должен: Знать: - типы полей; - правила создания маски ввода. Уметь: - устанавливать форматы полей; - вводить ограничения на ввод данных; - составлять маску ввода данных; - добавлять поле «Мастер подстановок». Вопросы для повторения: 1. Понятие СУБД. 2. Объекты СУБД Access. 3. Типы полей в Access. 4. Создание макета базы данных в режиме таблица и в режиме Конструктора. 5. Заполнение базы данных. 6. Задание ограничения на ввод данных Вопросы новой темы: 1. Определение Размера поля в зависимости от типа поля. 2. Добавление в таблицу поля «Мастер подстановок». Создание поля со списком: фиксированным набором данных, с данными из другой таблицы. 3. Задание форматов полей для наглядного отображения данных. 4. Задание масок ввода для упрощения ввода данных в таблицу. 5. Установка значений по умолчанию. 6. Задание обязательного поля. 7. Заполнение области подписи поля, описание поля. 8. Улучшение представления данных в режиме таблицы: закрепление, скрытие столбца (строки). 9. Форматирование таблицы: изменение параметров шрифта, фона таблицы, размера текстового поля, устанавливаемого по умолчанию. 7 ТЕОРИЯ Форматы данных и типы полей. Определение Размера поля в зависимости от типа поля. Добавление в таблицу поля «Мастер подстановок». Виды списков: фиксированный набор значений, значения из таблицы. Определение правил проверки данных (ограничение на ввод данных). Использование масок ввода для определенных форматов данных. Установка значений по умолчанию. Обязательное поле. Выбор типа поля для ввода текстовой информации: текстовый или МЕМО. Улучшение представления данных в режиме таблицы: закрепление, скрытие столбца (строки). Изменение структуры листа данных. Форматирование таблицы. При создании таблицы каждое поле имеет 4 элемента (режим Конструктора): 1. Имя поля – для ввода имени поля. 1 2 В имени поля нельзя использовать ., ,, 3 !, ‘ (апостроф), (,). Имя поля может 4 содержать до 64 символов. 2. Тип данных – для указания типа данных поля. 3. Описание необязательным является разделом; если вы решите ввести сюда текст, это поможет задокументировать базу данных. При отображении данных в режиме таблицы, текст описания для текущего столбца появляется слева внизу в строке состояния. 4. Свойства – для детального определения типа данных, указания видимого заголовка и т.д. Выбор типа данных. Их свойства Свойства типов полей задается в разделе Свойства — Размер поля. 1. Тип поля Текстовый Для определения максимальной длины поля по умолчанию: 1) Кнопка Office — Параметры, Вкладка «Конструктор объектов» 2) Ввести число в поле «Размер текстовых полей по умолчанию». 8 2. Тип МЕМО. Текстовое поле очень большой длины (около 65536 символов). Сюда заносят примечания, комментарии к данным и т. п. Для данных данного типа Access выделяет столько места, сколько потребуется, т. е. если для одной записи потребуется 200 символов, а для другой – 55, именно столько и будет выделено под них в системе. 2. Тип Числовой Байт – целые числа от 0 до 255 Целые – целые числа от -32768 до +32767 Длинное целое – целые от -2 147 483 648 до +2 147 483 647 Одинарное с плавающей точкой –от -3,402823е38 до +3,402823е38 Двойное с плавающей точкой – от -1,79769313486231е308 до +1,79769313486231е308 Действительное – для работы с научными или инженерными данными, требующих абсолютной точности – от -1е-28 до 1е28-1 3. Тип Денежный Содержит максимально 15 цифр в целой части и 4-в дробной. Менять нельзя. 5. Тип Логический – для полей, которые могут иметь только одно из двух значений: Да/Нет, Вкл/Выкл, Истина/Ложь. ЗАДАНИЯ ЗАДАЧА 1. БД «Товарооборот» 1. Создать базу данных «Товарооборот». а. Создать макет таблицы «Поставщики» (карт. 1). б. Заполнить данные только полей «ФИО», «Адрес». в. Описать поле «Должность» – «Занимаемая должность в фирме поставщика». г. Самостоятельно описать другое поле. д. Добавить поле логического типа «Контракт» со значениями ДА/НЕТ и заполнить. 9 ТЕОРИЯ Мастер подстановок Последний элемент в списке «Тип данных» – Мастер подстановок, который вызывает мастера, помогающего вам составить список разрешенных значений для указанного поля. Мастер позволяет вам просмотреть данные из другой таблицы той же базы данных и вставить в текущую таблицу. Также позволяет создавать раскрывающийся список, основанный на введенных значениях. Создание Поля со списком с помощью Мастер подстановок: 1.Открыть таблицу базы данных в режиме Конструктора. 2. Выделить поле, для которого будем создавать список. 3. Указать Тип поля и Размер поля. 4. В списке «Тип поля» выбрать Мастер подстановок. 5. После этого произойдет запуск Мастера подстановок. 6. Выбрать переключатель 10 6.1 Объект «столбец подстановок» означает, что данные будут браться из ранее созданной таблицы или запроса. А) Указать таблицу – источник данных для списка. Б) Указать поле – источник данных В) Откорректировать ширину столбца. 11 6.2 Фиксированный набор значений. Установка данного переключателя будет означать, что данные будут вводиться в саму открытую таблицу. Данные значений вводятся в мастере. А) после нажатия кнопки «Далее» откроется диалоговое окно, в котором необходимо определить количество столбцов для списка, ввести элементы списка. Б) откорректировать ширину столбца и нажать «Готово». Для дополнительной настройки свойств списка необходимо: 1. Выделить поле со списком 2. В области Свойства на вкладке Подстановка задать дополнительные параметры списка: количество присоединенных и доступных полей для списка; заголовки полей, ширину столбцов списка. Если список состоит из нескольких столбцов, то при создании списка необходимо первым указать то поле таблицы, из которого будут выбираться данные. 12 Пример. Поле Должность – поле со списком из двух столбцов, но данные выбираются по столбцу Название. Названия полей списка вывести. В области Свойства во вкладке Подстановка установим следующие параметры: Ч и с л о с толбцов – 2 Присоединенный столбец – 2 Заглавия столбцов – Да Первым указываем поле Название, т. к. именно из него будем выбирать данные в поле Должность Рекомендуется преподавателю на примерах показать студентам вставку различных списков, их свойства, способы их редактирования. Если студент неправильно сделал список в работе, то необходимо перед удалением списка из поля удалить связь в окне «Схема данных». 13 ЗАДАНИЯ. ЗАДАЧА 1. БД «Товарооборот» 1. В базе данных «Товарооборот» создать таблицу «Данные по поставщикам», содержащую поля «Наименование фирмы» и «Должность». Поля должны иметь одинаковое количество данных. 2. Поле «Должность» содержит данные: Аналитик финансового отдела, Директор по маркетингу, Финансовый директор, Старший консультант, Генеральный директор, Старший менеджер. 3. Поле «Наименование фирмы» содержит шесть наименований фирм (придумать самостоятельно). 4. В таблице «Поставщики» создать поле «Должность» со списком из таблицы «Данные по поставщикам», заполнить поле в соответствии с карточкой 1. Список должен включать два столбца, но выбор должен быть по столбцу Должность. Отобразить заголовки столбцов списка. 5. Аналогично добавить в таблицу «Поставщики» поле «Фирма» и заполнить его. Список содержит одно поле. 6. Поле «Факс» должно содержать фиксированный список (данные взять из карточки 1). 14 ТЕОРИЯ Форматы полей. Форматы полей предназначены для отображения данных на экране. Изменив формат, можно представить данные в более наглядном, информативном и доступном виде. Форматирование применяется к индивидуальным полям, а не ко всей таблице. Форматы доступны для полей любого типа, кроме типа Поле объекта OLE. В MS Access используется две разновидности форматов: встроенные и специальные. Последние создаются с помощью специальных символов. Символы форматирования для текстовых и МЕМО-полей Символ > Описание Вся информация, содержащаяся в этом поле, будет выводиться на экран заглавными буквами. Вся информация, содержащаяся в этом поле, будет выводиться на экран строчными буквами. В позицию необходимо ввести символ или пробел, обязательный символ. Заполнение текстового поля начинается с «Младших разрядов», а слева данные будут дополнены недостающими пробелами, пока количество символов не будет таким же, как задано в формате. Необязательный текстовый символ < @ & Пример форматов ввод→ВВОД ВвоД→ВВОД Ввод →ввод ВВОД→ввод (@@@@)@@@-@@-@@ 0445554433→(044)555-44-33 @@@@@@@ Кофе → Кофе 3 пробела (&&&&)&&@-@@-@@ 4445533 → ()444-55-33 Символы > и < относятся ко всему полю, а @ и & – соответствуют каждому символу поля Специальные форматы для текстовых и МЕМО-полей Формат для текстовых полей может состоять из двух разделов, разделенных “ ; ”: первый раздел задает формат отображения текста; второй – пустых строк и пустых (Null) значений. Так, например, указав для текстового поля формат @;”Не введено”, можно обеспечить заполнение ячеек вашей таблицы подобными примечаниями, если данные не будут введены или введена пустая строка. Если в такое поле вводится текст, он будет отображаться без изменений. 15 ЧИСЛОВЫЕ И ДЕНЕЖНЫЕ ФОРМАТЫ Встроенные форматы Для форматирования числовых и денежных полей MS Access предлагает ряд встроенных форматов. Все они включены в список опции Формат поля в виде пар: название формата и образец его использования. Список числовых форматов, предлагаемых в окне Конструктора Наиболее распространенные форматы. ➢ Основной. Формат, используемый по умолчанию. ➢ Денежный. Данные отображаются в десятичном виде: 0,00. кроме того, в число включается разделитель групп разрядов и символ денежной единицы, с учетом настроек, заданных в окне Свойства: Язык и стандарты панели управления MS Windows. ➢ Евро. В качестве символа денежной единицы используется символ €. ➢ Фиксированный. Числовые данные выводятся с определенным числом знаков после десятичной запятой. По умолчанию используются настройки, принятые в окне Свойства: Язык и стандарты панели управления MS Windows. ➢ С разделителем разрядов. Имеют разделители групп разрядов. Используются настройки, принятые в окне Свойства: Язык и стандарты панели управления MS Windows. ➢ Процентный. Переводит десятичные дроби в более привычные вид для расчетов с процентными величинами. Для этого число умножается на 100 и выводится со знаком %. Вводить данные в поля данного формата необходимо в виде десятичной дроби, например, 0,15, а не 15%, если речь идет о пятнадцати процентах ➢ Экспоненциальный. Числа выводятся в нормальной записи числа (числа с плавающей точкой), например, 2,3Е+03 Специальные форматы Специальные формат для числового (денежного) поля может включать от одного до четырех разделов, которые отделяются друг от друга точкой с запятой (;). Первый раздел определяет формат положительных чисел, второй – отрицательных, третий – нулевых значений и четвертый – пустых (Null) значений. 16 Рекомендуется при объяснении формата числового поля предложить студентам вспомнить пользовательские форматы MS Excel: разделы, входящие в формат, символ 0 и #. Специальное значение Null, которое может храниться в полях таблицы MS Access, сигнализирует о том, что в поле нет вообще никаких данных (т. е. в отличие от пустой строки в случае текстового поля или нулевого значения для числового поля, они просто не вводились) Расшифруем специальный форма числового поля: +0,0;(-0,0);0,0;”Не заполнено”. Если его применить, положительные значения будут выводится со знаком +, отрицательные – со знаком –, в случае нулевого значения в поле появится 0,0, а для пустых значений будет выведено Не заполнено. Числа буду округляться до одного знака после запятой. Символы, используемые в специальных форматах для числовых и денежных полей Символ ., 0 Описание Десятичный разделитель Обязательная цифра. В соответствующей десятичной позиции числа выводится цифра или 0. Независимо от числа символов 0, целая часть будет выводиться полностью. # Необязательная цифра. В соответствующей десятичной позиции выводится значащая цифра или ничего не выводится. Независимо от числа символов #, целая часть будет выводиться полностью. % Процентный формат. Число умножается на 100, и к нему в конце добавляется знак %. Для поля типа Дата /время: : Разделитель компонентов времени ./Разделитель компонентов даты К Краткий формат даты с Средний формат даты d dd ddd dddd m mm mmm mmmm У yy yyyy Номер для месяца (одна- две цифры) Номер для месяца (две цифры) Сокращенное название для недели Полное название для недели Порядковый номер месяца ( 1-2 цифры) Порядковый номер месяца (2 цифры) Первые 3 буквы в название месяца Полное название месяца Порядковый номер дня в году (1-366) Последние две цифры года (01-99) Полный номер года (0100-9999) Пример форматов Формат: 000000,000 3456,78 → 003456,780 Формат: ######,### 3456?78 → 3456,78 Формат: #0,00% 0,34567 → 34,57% 17:55 21-янв-2008 21.01.08 21/01/08 1 или 12 01 или 12 Сред, суб, пон Среда, Суббота, Понедельник 1 (январь) или 10 (октябрь) 01 или 10 Сен, Янв Сентябрь, Январь 09, 10 2009, 2010 17 Если в специальный формат необходимо включить запятую или другой символ разделителя, вводите его в кавычках или для одного символа используйте \. Если введен формат dddd”, ”dd\ mmm”, ”yyy” г.”, то в поле будет выведена дата в следующем виде: среда, 12 апр, 2009 г. Для поля любого вида Вывод пробел. Вывод символов более одного Выравнивание по левому краю Выравнивание по правому краю, заполняя слева символами указанными после звездочки. Вывод одного символа Черный, синий, бирюзовый, зеленый, красный, лиловый, желтый, белый. “ ! * \ [цвет] ЗАДАНИЯ. ЗАДАЧА 1. БД «Товарооборот» 1. Данные поля «ФИО» должны отображаться заглавными буквами, красным цветом. 2. Заполнить поле «Телефон рабочий», установив формат отображения данных \(&&&”) “&@@\-@@\-@@. ПОСМОТРЕТЬ РЕЗУЛЬТАТ! 3. Изменить в формате & на @. ПОСМОТРЕТЬ РЕЗУЛЬТАТЬ! 4. Объяснить отличия. 5. Добавить в таблицу «Поставщики» поле «Дата контракта». Ввести формат отображения даты: 12 апреля 2009, среда. Дата должна отображаться синим шрифтом. Заполнить поле. Рекомендуется на доске разобрать несколько примеров на различные форматы 18 ТЕОРИЯ Маска ввода Если форматирование данных позволяет изменять внешний вид данных в полях таблицы (уже после их ввода), то Маска ввода предусмотрена для того, чтобы не допустить попадание в таблицу некорректных данных. Маска позволяет при вводе информации показывать в поле готовый шаблон, в который заносятся данные. Благодаря Маскам обеспечивается соответствие введенных данных определенному формату. Как правило, Маски используются в текстовых, числовых, денежных полях и полях типа Дата/Время. Чаще всего – для форматирования телефонных номеров, почтовых индексов или кодовых комбинаций. Маска ввода для поля телефон Работать с Масками очень удобно: при наличии в поле специального шаблона пользователю не нужно при вводе данных заботиться о соблюдении всех формальностей, например, указания в нужных позициях пробелов, правильных разделителей. Чему отдать предпочтение форматированию или маске ввода? Принципиальное отличие этих опций следующее: свойство Формат поля применяется уже после того, как данные введены и сохранены в поле, а свойство Маска ввода действует еще до размещения информации в таблице. Свойство Формат поля не влияет на значения, хранимые в таблице. Свойство Маска ввода может использоваться в дополнение к формату или вместо него. Если для поля определены как формат отображения, так и маска, то при добавлении и редактировании данных программа MS Access предложит в поле маску ввода, а при выводе данных приоритет будет иметь свойство Формат поля (маска ввода при этом игнорируется) Указывая и формат, и маску ввода одного и того же поля, убедитесь в том, что они не противоречат друг другу. 19 Маска содержит до 3 разделов, разделенных ; (точкой с запятой). 1 раздел – непосредственно сама маска ввода (например, «Номер заказа:»0000). 2 раздел –указывает, будет ли программа сохранять при вводе промежуточные символы в таблице. Если указать 0, то текстовые константы (например, дефисы, скобки), которые добавляются к символам, вводимым пользователем, сохраняются вместе с данными; значение 1 или пустое поле этого раздела указывает, сохраняются только сами данные. 3 раздел – определяет символ, используемый для отображения пустых позиций в маске ввода, куда должны помещаться данные, вводимые пользователем. По умолчанию – “ _ “ (символ подчеркивания). Маски ввода можно создать двумя способами: с помощью мастера и собственными силами. Символы, используемые для создания масок Символ 0 9 # Описание Цифра от 0 до 9; обязательный символ; знаки «+» и «-» не разрешены Цифра или пробел; не обязательный символ; знаки «+» и «-» не разрешены Цифра или пробел; не обязательный символ; незаполненные позиции отображаются пробелами при редактировании, но при сохранении удаляются; знаки «+» и «-» разрешены Буквы (А-Я или A-Z); обязательный символ Буква (А-Я или A-Z); необязательный символ Буква или цифра; обязательный символ Буква или цифра; необязательный символ Любой символ или пробел, обязательный символ Любой символ или пробел, необязательный символ Все символы поля выводятся заглавными буквами Все символы поля выводятся строчными буквами Заполнение маски ввода справа налево (по умолчанию – наоборот). Этот символ помещается в произвольную позицию в маске ввода. Выводит следующий символ как текстовую константу. Все символы поля будут сохраняться, но отображаться на экране в виде “*” L ? А а & С > < ! \, “ “ Пароль Создание маски с помощью мастера Мастер создания Масок ввода ограничена текстовыми полями и полями Дата/Время. 1. В режиме Конструктора выделите поле, для которого будет создаваться маска ввода. 2. В области Свойства щелкните в поле ввода Маска ввода. Справа от этой строки появится кнопка Построитель . 20 3. Щелкните на данной кнопке. На экране появится диалоговое окно Создание масок ввода, где будут вам предложен список возможных масок для поля данного типа. 4. Из списка доступных масок выберите наиболее подходящую. При желании можно проверить, как она работает, введя данные в поле Проба. Если результат устраивает нажать Далее. 5. В следующем окне мастера отредактировать маску и можно выбрать из раскрывающегося списка Заполнитель тот символ, который будет использован в позиции шаблона. 6. В заключительном окне мастера щелкните на кнопку Готово. Создание маски вручную 1. Подумайте какой должна быть ваша маска и какие функции она должна выполнять. 2. введите вариант маски в поле Маска ввода. Например, для поля Дата может быть введена маска 00\.>L<LL\.00” г.”, которая означает следующее: число состоит из двух цифр, после него ставится точка, затем краткое название месяца, с заглавной буквы пишется первая буква, остальные строчные, после месяца – точка, затем год из двух цифр, через пробел ставится буква г. введем в поле число 21.01.10 – на экране увидим 21.Янв.10 г. 21 ТЕОРИЯ. Ограничение на ввод Самый надежный способ обезопасить таблицу от ввода ошибочных или ложных данных — обеспечить их проверку на соответствие определенным требованиям непосредственно при вводе. Некоторую часть работы по проверки допустимости значений данных программа MS Access выполняет автоматически. Подобную заботу она проявляет о числовых, денежных, логических, текстовых полях и полях Дата/Время. Например, если вы попытаетесь ввести в числовое поле буквы или в текстовое поле больше символов, чем заданный размер поля. Кроме того, все вводимые числа проверяются на соответствие определенному для данного поля подтипу (Целое, Длинное целое и т. д.). в поля типа Дата/Время вам не удастся поместить буквенные символы или значение типа 25:12:65. Однако следует предусмотреть кроме вышеперечисленного и другие операции контроля. Проверка вводимых значений осуществляется следующим образом: 1. Открыть таблицу в режиме Конструктора 2. Выделить поле, для которого создаем ограничения на ввод 3. В области Свойства в строке Условие на значение либо с клавиатуры вводим условие, либо с помощью Построителя. 4. Построитель вызывается кнопкой . 5. В диалоговом окне условие вводится либо функцией, либо с помощью логических операций. 22 6. В строке Сообщение об ошибке ввести текст с указанием правильного ввода Например, необходимо предусмотреть при вводе в поле Дата заказа, чтобы вводимая дата не превышала текущую. В области Свойства в строке Условие на значение вводим <=Date() Улучшение представления данных в режиме таблицы. Закрепление столбца 1. Выделить столбцы, щелкнув на заголовке закрепляемого поля 2. Формат→Закрепить Снять закрепление: Формат→Освободить все столбцы Скрытие полей I способ – если поля смежные 1. Выделить поле (поля) 2 Формат → Скрыть II способ – если поля не смежные 1. Формат→ Отображения столбцов 2. Снять выделение со скрываемых столбцов. Для отображения полей произвести команды Формат→ Отображения столбцов, только поставить . Форматирование таблицы Если необходимо изменить внешний вид всей таблицы, необходимо: 1. Формат 2. Режим таблицы 3. Изменить фон, шрифт, вид границ. Установка значения в поле по умолчанию 1. Открыть таблицу в режиме Конструктора 2. Выделить поле, для которого ставим значение 3. В области Свойства в строке Значение по умолчанию ввести значение – либо константу, либо функцию. Функцию можно ввести: а. Построитель выражений б. Функции в. Встроенные функции г. Выбрать функцию д. <Ok> 23 Одна из самых распространенных функций, используемая для полей формата Дата/Время, Date() – функция текущей даты. ЗАДАНИЯ. ЗАДАЧА 1. БД «Товарооборот» 1. Открыть таблицу «Поставщики» 2. Задать маску ввода для поля Телефон и Дата. 3. В таблице «Поставщики» в поля «Электронная почта» и «Web- страница» задать маску ввода данных и формат. КОЛИЧЕСТВО СИМВОЛОВ В ЭЛЕМЕНТАХ ДОЛЖНО БЫТЬ ОДИНАКОВЫМ. Для поля Электронная почта до символа @ определить 5 символов, после @ – 8 символов. Для поля Web- страница – 9 символов. Недостающие символы доставьте сами. 4. В таблицу «Поставщики» добавить поле «Срок контракта». 5. Ввести на его данные ограничения больше 3 и меньше 15. предусмотреть сообщение об ошибке. 6. Ввести ограничение на ввод данных поля «Дата контракта»: больше 1.01.2004, но меньше текущей даты. 7. Установить в поле «Дата контракта» текущую дату по умолчанию. 8. Подписать это поле как «Дата заключения контракта». Отметьте, как изменилось имя поля в режиме Таблица. 9. Закрепить столбцы «ФИО», «Должность». 10. Скрыть столбцы «Факс рабочий», «Электронная почта», «Адрес», «Web- страница». 11. Изменить вид таблицы: фон, шрифт. Рекомендуется после выполнения заданий 1– 4 проверить у студентов создание Масок. Перед выполнением заданий еще раз объяснить учащимся, что в жизни маски задаются на данные с одинаковой структурой, т. е фиксированным количеством символов. Поэтому на поля «Электронная почта» и «Web- страница» обычно маски не задаются, искусственная структура этих полей нужна для отработки навыков создания Масок. 24 Карточка 1. ФИО Галина Усманова Ивановна Должность Телефон рабочий Факс рабочий Электронная почта Адрес Аналитик финансового рынка 812 5550112 812 5550114 g.usm@resource.ru 115325, г. Остров, пр. www.volgatur.ru Ленина, д.12, оф.43 812 5550117 812 5550118 v.kaz@resource.ru Виктория Александровна Казанцева Директор маркетингу Константин Владимирович Носов Финансовый директор 812 5550100 812 5550101 k.nos@ resource.ru Васильевич Старший консультант 812 5550441 812 5550444 v.dmt@ resource.ru Ольга Владимировна Генеральный Семенова директор 094 2211499 094 2211425 o.sem@vlga-tur.ru Кирилл Гусаров Викторович Генеральный директор 268 41436 268 41437 k.gus@servrirh.ru Валерий Морозов Елена Серова Николаевич Генеральный директор Николаевна Генеральный директор 094 2237065 094 2237062 v.mor@kkzkostr.ru 816 5558563 816 5558560 e.ser@vectranv.ru Виктор Дмитриев по 197113, г. Кириши, Ленинградская обл., Волховская наб., д. 15 127100, г. Набережные Челны, пр. Содружества, 62 3457000, г. Волхов, пр. Космонавтов, 65 114325, г. Кострома, пр. Ленина, д. 120, оф.435 187110, г. Кириши, Ленинградская обл., Волховская наб., д. 16 114325, г. Кострома, Промзона, строение 9 397100, Новгород, пр. Солидарности, 62 Web- страница www.rastserv.ru www.ewzcheln.ru www.ryzvolhv.ru www.volgatur.ru www.neftserv.ru www.kkzkostr.ru www. vectranv.ru Тема 2.2. Создание взаимосвязей между таблицами Студент должен: Знать: - понятие ключа, ключевого поля; - виды ключей; - виды связей Access. Уметь: - определять ключевое поле; - создавать и устанавливать связи между таблицами; - вставлять подчиненную таблицу. Понятие связи, ключевого поля. Виды связей между таблицами. Внешний и первичный ключи. Выбор главной таблицы, ключевого поля. Требования, накладываемые на ключевые поля. Создание информационно – логической схемы связанных таблиц. Технология установления связей между таблицами. Понятие целостности данных и каскадного обновления данных. Вставка подчиненной таблицы и просмотр ее данных из главной таблицы. ТЕОРИЯ. Связь между таблицами. В Access связь – это ссылка между двумя таблицами, которая показывает, как соотносятся данные в этих таблицах. При создании связи мы указываем Access, какие поля двух таблиц содержат одни и те же данные. В связи участвуют две таблицы – главная (таблица А) и подчиненная (таблица В), связанные по ключевым полям. При этом не обязательно, чтобы эти поля имели одинаковые имена, достаточно соблюдать однозначное соответствие значений. В роли таких полей в одной из таблиц (главной) выступает её первичный ключ, а поле второй таблицы (подчиненной) играет роль внешнего ключа. Первичный ключ – это поле (или несколько полей), уникальное для каждой главной таблицы, имеет индексированный тип (данные в поле не могут повторяться). Первичный ключ позволяет реализовать связи между таблицами. Благодаря связям информация из одной таблицы становится доступной для другой связи. Внешний ключ – поле подчиненной таблицы, содержащее данные из поля внешнего ключа. Данные в этом поле могут повторяться. Пример базы данных «Студенты АПК» – таблицы «Данные о студентах» (Фамилия, изучаемая дисциплина) и «Преподаватели» (Фамилия, Код специальности, преподаваемая дисциплина). Если данные в одной таблице, то она очень большая, неудобная для работы, т.е. в строке с фамилиями студента, изучающего конкретную дисциплину, будут храниться все атрибуты преподавателя, читающего эту дисциплину. Поэтому две таблицы участвуют в связи «Студенты» и связь между полями «Читаемая дисциплина» - «Изучаемая дисциплина». В Access можно создать 3 вида связей между таблицами: 1. Один ко многим – наиболее часто используемый тип связи между таблицами. В такой связи каждой записи таблицы А может соответствовать несколько записей в таблице В, а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А. Дисциплины 2. 1:М Преподаватели (1:М – один – ко многим) При связи Многие – ко – многим одной записи в таблице А может соответствовать несколько записей таблицы В, а одной записи таблицы В – несколько записей таблицы А. М:М Студенты Дисциплины (М:М – многие – ко - многим) Связи М:М Access (как и многие другие СУБД на платформе IBM PC) напрямую обработать не может, она реализуется только с помощью третей (связующей) таблицы, которая содержит по крайней мере два поля внешнего ключа, одно из которых является общим с таблицей А, а другое с таблицей В. Студент 3. 1:М Оценки 1:М Дисциплина При связи Один – к - одному запись в таблице А может соответствовать одной записи таблицы В и наоборот. Этот тип используется не очень часто, т.к. такие данные можно объединить в одну таблицу Связь 1:1 применяется для разделения очень широких таблиц. Тип связей зависит от полей, для которых определяется связь - Связь 1:М создается в том случае, когда только одно из полей является полем первичного ключа (имеет уникальный индекс), т.е. значения в нем не повторяются. - Связь 1:1 создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы. - Связь М : М фактически представляет две связи типа 1 : М, через третью таблицу, ключ которой состоит из двух полей, общих для двух других главных таблиц. 27 Существуют условия, которым могут соответствовать типы данных связываемых полей: - Общие или связываемые поля должны быть одинакового типа. - Если оба связываемые поля имеют числовой тип, они должны иметь и одинаковые значения свойства «Размер поля». - Поле с типом данных Счетчик можно связать с числовым полем, у которого свойство «Размер поля» - Длинное целое. - Поле Внешнего ключа должно содержать те же данные, что и поле Первичного ключа. Ключевыми могут быть поля только типа Текстового ил Числового Пример. Имеются четыре таблицы Студенты, Дисциплины, Преподаватели, Оценки. Составим информационно – логическую модель реляционной базы данных. Студенты Дисциплины 1:М Информационная модель 1:М Оценки Общие поля для связи: В таблицах Студенты и главная таблица Оценки – «Код студента» подчиненная Оценки и Дисциплина – «Код дисциплины» подчиненная главная таблица Составим логическую модель базы данных. Студенты Код студента Фамилия Имя Оценки 1:М Код студента Код дисциплины Оценки Отчество Дисциплина 1:М Код дисциплины Название дисциплины Преподаватель Номер группы Дата рождения Поле внешнего ключа Стипендия Поле первичного ключа Поле первичного ключа СИМВОЛ «КЛЮЧ» НА ПОЛЕ ВНЕШНЕГО КЛЮЧА В ПОДЧИНЕННОЙ ТАБЛИЦЕ НЕ СТАВИТСЯ! 28 Связь между таблицами. 1. Открыть базу данных в режиме Таблицы. 2. Открыть главную таблицу в режиме Конструктора. 3. Поставить полю первичного ключа значок Ключ: а. Правка – Ключевое поле б. На панели инструментов кнопка Ключ ставится только на поле первичного ключа!!! 4. Закрыть все таблицы. 5. Сервис > Схема данных или кнопка Если связь устанавливается в базе в первый раз, откроется окно «Добавление таблицы» - оно располагается поверх окна «Схема данных» (Для вызова данного окна диалога Связи — добавить таблицу). 6. Выбрать Таблицу или Запрос, используемые для связи, и щелкнуть на кнопке «Добавить». Выполнить операцию для каждой Таблицы или Запроса, участвующих в создании новой связи 7. Связи между таблицами устанавливаются методом перетаскивания поля из родительской таблицы в подчиненную, четко над тем полем, с которым оно связывается. (В главной таблице поле первичного ключа выделяется жирным шрифтом). 8. После переноса поля появится диалоговое окно Изменение связей. а) Проверить правильность выбора полей, представленных в диалоговом окне (Программа Access может достаточно точно «угадывать» поля, для которых можно создать связь) б) Установить флажок Обеспечение целостности программа автоматически в свойстве данных, чтобы поддерживала сохранение связи между двух таблиц. Если этот флажок стоит, Access предотвратит внесение вами данных, не соответствующих типу связи между таблицами или удаление записи, которая связана, т.е. данные, вводимые в поле 29 внешнего ключа дочерней таблицы, должны совпадать с данными, хранимыми в поле первичного ключа родительской таблицы. В поле внешнего ключа дочерней таблицы нельзя ввести значение, не содержащееся в поле первичного ключа родительской таблицы. в) Каскадное обновление связанных полей и каскадное удаление связанных записей позволит отредактировать записи только в главной таблице, а в подчиненной эти действия будут со связанными записями выполняться автоматически. г) Создать После этого появится жирная стрелка, показывающая, какие таблицы связаны, с отображением типа связи. Отображение записи в режиме Таблицы. После установления связей вид родительской таблицы изменится. Знак + слева от записи означает, что есть связанные записи, которые можно просмотреть, щелкнув на +. Чтобы скрыть связанные записи, щелкните на знаке «—», который заменяет знак «+» при отображении записей подчиненной таблицы. Для смены отображения подчиненной таблицы необходимо выполнить команды: Вставка — Подтаблица — Указать имя отображаемой подтаблицы. 30 ЗАДАЧА 1. БД «Студенты БГК» 1. Создать базу данных «Студенты БГК», состоящую из шести таблиц 2. Таблица «Студенты» содержит восемь записей (по 2 человека из группы): Имя поля Nст_билета Фамилия Имя Отчество ДР Группа Дом_адрес Требования к полю Большими буквами Формат — 01 января 2014 г. Маска __.__.__ г. Подпись: Дата рождения Поле со списком (по ключевому полю таблицы Группы) Маска 8(_4__) _3_-_2-_2 цифрами указываются количество символов Формат должен соответствовать маске ввода, лишние пробелы должны быть убраны Подпись: Контактный телефон КТ Характеристика Фото Объект OLE Наличие стипендии Размер стипендии Формат в «руб.» 3. Таблица Родители (четыре студента имеют двух родителей, двое – из неполной семьи, двое – сироты). Таким образом, в таблице Родители будет 10 записей. Имя поля ФИО Место работы Родство Доход Место_жительства Телефон Требования к полю Фиксированный список: Мать, Отец, Отчим, Мачеха 4. Таблица «Группы» (4 группы). Имя поля ID_группы Наименование группы Колич_чел Требования к полю Фиксированный список из 4 элементов Ограничение на ввод от 10 до 35 5. Таблица «Успеваемость. Каждый студент сдал три экзамена по трем дисциплинам, т. е. в таблице Оценки будет 24 записи. В таблице одно поле «Оценки» с ограничением на ввод 2,3,4,5. 6. В таблице «Дисциплины» – 3 записи. Имя поля КД Наименование дисциплины Преподаватель Требования к полю Список из таблицы «Преподаватели». преподаватель ведет несколько дисциплин. Один 31 7. Код дисциплины (КД) для наглядности лучше задавать символами, например, Информационные технологии – ИТ, высшая математика – ВМ, Базы данных – базы данных и т. д. 8. Таблица «Преподаватели» содержит три записи. Имя поля ID_препод ФИО Требования к полю 9. Составить информационно-логическую модель базы данных в тетради. 10. Создать связи между таблицами. Задача 2 «Связи» (зачет) Вариант 1. 1. Создать базу данных «Теннисисты», содержащую две таблицы: Данные о теннисисте Фамилия Имя Рейтинг Дата рождения Страна игрока Турниры Номер ракетки в мире Название турнира Место на турнире Страна проведения турнира Год проведения турнира Рейтинг – это номер ракетки в мире. 1. Поле «Название турнира» в таблице «Турниры» должно быть полем с фиксированным списком (4 элемента). 2. В тетради зарисовать информационно-логическую модель связанных таблиц. 3. Установить связь между таблицами. 4. Заполнить таблицы: три спортсмена – один из них принимал участие в трех турнирах, два из них принимали участие в двух турнирах, третий - в одном. 32 Вариант 2. 1. Создать базу данных «Погода в мире», содержащую две таблицы: Погода Регионы Дата Температура Облачность Кол-во осадков Регион Название региона Площадь Кол-во жителей Логический тип 2. Поле «Название региона» в таблице «Регионы» должно быть полем с фиксированным списком (4 региона). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить таблицы: три региона – один из них имеет данные по трем дням, два из них по двум дням, третий – одну дату. Вариант 3. 1. Создать базу данных «Бюро занятости», содержащую две таблицы: Безработные Код учета ФИО Профессия Дата постановки на учет Образование Личные данные Код безработного Последнее место работы Стаж ФИО родственника Вид родства 2. Поле «Вид родства» в таблице «Личные данные» должно быть полем с фиксированным списком (4 элемента). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить таблицы: четыре безработных – два из них имеют по три родственника, один – два родственника, четвертый – одного. 33 Вариант 4 1. Создать базу данных «Владельцы машин», содержащую две таблицы: Владельцы ФИО Адрес Семейное положение Дата рождения Дата выдачи прав Машины Марка автомобиля Цвет кузова Вид кузова Год выпуска Страна производитель 2. Поле «Семейное положение» в таблице «Владельцы» должно быть полем с фиксированным списком (4 элемента). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить таблицы: четыре владельца – один из них имеет три автомобиля, два из них – по две машины, четвертый – одну. Вариант 5 1. Создать базу данных «Видеотека», содержащую две таблицы: Фильмы Название Дата приобретения Раздел Вид Количество Характеристика Год выпуска фильма Страна Продолжительность Режиссер Артист в главной роли Содержание 2. Поле «Раздел» в таблице «Фильмы» должно быть полем с фиксированным списком (4 элемента – комедия, ужасы, фэнтези, драма). Поле «Вид» – CD, DVD, в/фильм. 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить таблицы: четыре фильма – один из них выпускался три раза, два из них – два, четвертый – один. 34 Вариант 6 1. Создать базу данных «Библиотека», содержащую две таблицы: Каталог Автор Название книги Дата приобретения Раздел Количество книг Данные о книгах Год издания Издательство Цена Содержание Тираж 2. Поле «Раздел» в таблице «Каталог» должно быть полем с фиксированным списком (4 элемента – комедия, сказки, фэнтези, драма).. 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить поля: четыре книги – одна из них выпускалась три раза, две из них – два раза, четвертая – один. Вариант 7. 1. Создать базу данных «Вкладчики банка», содержащую две таблицы: Информация о счете Номер счета Пароль Вид вклада Размер вклада Дата вклада Вкладчик ФИО Дата рождения Место работы ФИО родственника Вид родства 2. Поле «Вид родства» в таблице «Вкладчик» должно быть полем с фиксированным списком (4 элемента). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить поля: четыре вкладчика – один из них пополнял счет три раза, два из них – два раза, четвертый – один. 35 Вариант 8 1. Создать базу данных «Склад», содержащую две таблицы: Товары Наименование товара Вид упаковки Дата изготовления Цена за единицу Срок хранения Данные о товарах Производитель Состав Закупочная цена Минимальная партия Дата приема товара 2. Поле «Вид упаковки» в таблице «Товары» должно быть полем с фиксированным списком (4 элемента). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить поля: четыре товара – один из них от трех производителей, два из них – от двух, четвертый – имеет одного производителя Вариант 9 1. Создать базу данных «Склад кофе», содержащую две таблицы: Товары Наименование товара Вид упаковки Дата изготовления Цена за единицу Вид кофе Данные о товарах Фирма - производитель Страна изготовитель Закупочная цена Вес Характеристика 2. Поле «Вид кофе» в таблице «Товары» должно быть полем с фиксированным списком (4 элемента). 3. В тетради зарисовать информационно-логическую модель связанных таблиц. 4. Установить связь между таблицами. 5. Заполнить поля: четыре товара – один из них от трех производителей, два из них – от двух, четвертый имеет одного производителя. 36 ТЕМА 2. ЗАПРОСЫ Запрос объект Access предназначенный для формирования вопроса к БД. В запрос можно включать данные из разных таблиц и запросов, добавлять вычисляемые поля. Операторы запросов & - служит для объединения несколько строк символов в одну строку. Работает в паре с оператором Like. Like – проверяет, соответствует ли строковое значение заданному шаблону. Например, даны два поля Фамилия и Имя. Фамилия Имя Иванов Иван Петров Сергей Необходимо объединить их в одно поле: Like [Фамилия]&” “&[Имя]. В результате увидим: Фамилия Имя Иванов Иван Петров Сергей Символы в шаблоне подстановки *-последовательность символов. ? – любой один символ # - любая цифра [список] – любой символ из списка. Например, [А-К] – отбор всех данных, первые буквы которых от А до К [!список] – любой символ не из списка. Например, [!А-К] – отбор всех данных, начинающихся с Л до Я. Is – используются в выражениях is Null или is not Null Например, если в запросе указать: Определяет наличие или отсутствие в поле значения Null. Например, если в запросе указать: Студенты Родители Nстбил is Null Выведутся студенты, не имеющие подчиненных записей в таблице «Родители», т.е. в поле внешнего ключа (таблица «Родители») не будет значения, соответствующего значению первичного ключа Nстбил (таблица «Студенты»). Ln – проверяет совпадает ли значение с одним из элементов указанных в списке. Например, Ln(«Россия», «КНР»). Выведутся все записи, у которых в поле «Страна» будет указано «Россия» или «КНР». Between …. And…. (≤X≤) проверяет сложное условие, соединенной союзом And. Например, необходимо вывести товары, цена которых от 100 до 200 руб. Условие отбора в поле «Цена» можно записать двумя способами: 1. >=100 And <=200 2. Between 100 And 200 37 Типы запросов: 1. Простые – источником служит одна таблица\запрос. 2. Сложные – источником служат несколько таблиц\ запросов. Виды запросов 1. Запросы на выборку. 2. Запрос с параметром. 3. Запрос на обновление. 4. Вычисляемые запросы. 5. Перекрестные запросы. Окно Конструктора Запроса: Поле отображения таблиц для запроса Кнопка выбора полей Кнопки отображения полей в таблице запроса Создание запроса на выборку: 1.Открыть БД. 2. Создание — Запросы — Конструктор запросов 3.Указать таблицы (запросы) для запроса. 4. Сформировать запрос, указав таблицу, имя поля, сортировку*, вывод на экран, условия на выборку. 5. Запустить запрос на выполнение: а) Кнопка ! б) Перейти в режим выполнения запроса через кнопку «Вид». 6.Сохранить запрос 38 Запросу нельзя присвоить имя существующей таблицы. Запрос с параметрами предназначен для ввода условия во время работы запроса. Создание запроса: 1. Создать запрос на выборку с необходимым условиями. 2. В строке условия отбор для поля с меняющимся условием ввести сопроводительный текст, заключив его в[…]. Результат работы запроса: В строке параметра необходимо ввести должность полностью Если необходимо ввести выборку по части текста, то необходимо изменить параметр: Полученный набор записей Запрос1 Фамилия Имя Отчество должность Иванов Иван Иванович менеджер Петров Петр Петрович менеджер Создание нового поля в запросе осуществляется следующим образом: 1. Задаются необходимые поля из таблиц; 2. В свободном поле конструктора запроса вводят Имя нового поля: выражение для создания данных. Имена полей из таблицы в создаваемом выражении вводят в[]. Чтобы не допустить ошибки при наборе и не вводить имена с клавиатуры, поля указывают в запросе, затем копируют имена в [], после этого эти поля из опции «Поле» удаляют. 39 Например, Чтобы удалить поле из запроса, его необходимо выделить и нажать Delete. ЗАПРОСЫ НА ВЫБОРКУ 1. Открыть БД «Студенты БГК» 3. Построить запросы. ЗАПРОСЫ ДОЛЖНЫ ВЫВОДИТЬ НЕ МЕНЕЕ ДВУХ ЗАПИСЕЙ. Если таких записей не существует, то можно добавить или изменить данные. I. 1.Выбрать студентов – Фамилия, Имя, Отчество, группа, родители которых работают на БОЗ и рабочий телефон начинается с 5. 2. Сохранить запрос «Условия отбора» II 1.Вывести сирот, создать новое поле Фамилия и инициалы из полей Фамилия, Имя. Отчество (таблица «Студенты»). 2. Сохранить «Сирота» III. 1. Вывести студентов, которые учатся в одной группе. Группа задается в процессе работы запроса. (Запрос с параметром). 2. Сохранить запрос «Одногруппники». IV. 1. Вывести преподавателей, ведущих в группе (название группы выбирает Пользователь). 2. Сохранить запрос «Преподаватели в группе» V. 1. Вывести студентов, получающих стипендию. 2. Сохранить запрос «Стипендия». VI. 1. Вывести совершеннолетних студентов – Фамилия, Имя, Отчество, Группа, Дата рождения. Поля Фамилия, Имя, Отчество объединить в одно поле ФИО. 2. Сохранить запрос «Совершеннолетние». VII 1. Вывести студентов, проживающих в Бийске. 2. Сохранить запрос Бийчане». VШ 1. Вывести фамилии всех студентов, не допущенных к сессии; 2. Сохранить запрос «Не допущенные» 40 IX. 1. Вывести фамилии и номера групп отличников. 2. Сохранить запрос «Отличники» Запросы на обновление Данные запросы служат для обновления значения всех записей, удовлетворяющих определенному условию, в самой таблице. Пример: поднять цену на 3% для тех товаров, которые дороже 180 тыс. и на 10%, которые дешевле 180 тыс. Создание запроса: 1.Создать запрос с условиями и проверить его работу. 2. Запрос→Обновление 3. Ввести в дорожку «Обновление» условия обновления. Например, [Цена]*1,03 4. Запустить запрос на обновление и подтвердить выполнение. Пример Дана таблица «Фрукты» Фрукты Наименование товара Цена товара Бананы 120,00р. Апельсины Виноград Лимоны Яблоки 90,00р. 300,00р. 150,00р. 100,00р. Увеличить цену на 3% тех товаров, которые стоят <100 руб., и на 1% цену товаров, которые стоят >100 руб. 1. Создаем запрос с одним полем «Цена товара» (по данному полю пойдет обновление в таблице). 2. В поле условие отбора вводим >100. Проверяем его работу 3. Меняем вид запроса с «На выборку» на «Обновление» 4. В поле «Обновление» вводим: [Цена товара]*1,03 5. Запустим запрос. Выведется сообщение с предупреждением об обновлении данных в таблице. 41 При нажатии «Да» произойдет обновлении данных в поле «Цена товара» Товар Наименование товара цена товара Бананы Апельсины 121,20р. 90,00р. Виноград Лимоны Яблоки 303,00р. 151,50р. 100,00р. Задание: 1. Всем студентам, не получающим стипендию, осуществить доплату 50 р., а получающим – 90 р. 2. Сохранить под именем «Обновление» Вычисление в запросах Вычисления в запросах могут производиться двумя способами: 1. Арифметическое выражение задается в новом поле запроса. Например, необходимо рассчитать сумму скидки в 5%. Скидка:[Цена]*[Количество]*0,05 2. С помощью групповых операций. Данные запросы автоматически группирует данные в заданном поле по группам, а затем по группам происходит расчет указанной функции. Запросы с групповыми операциями 1.Открыть или создать запрос 2.Вид→групповые операции. 3.Щелкнуть в ячейке группировка, того поля, для которого будет расчет. 4. Выбрать операцию запустить запрос Задания: I. Рассчитать итоговую сумму стипендий, которые платят в каждой группе. Сохранить под именем «Сумма» II. Вывести количество человек, обучающихся в колледже. Сохранить под именем «Количество» III. Вывести преподавателей, ведущих более одной дисциплины. Сохранить под именем «Более одной». 42 IV. Вывести количество отличников по группам, по отделениям (на основе предыдущего запроса). Сохранить соответственно под менами «Отличники в группе», «Отличники отделения». V. Рассчитать Сумму стипендии, если ее увеличить на 10%. Сохранить под именем «Увеличение на 10%» VI. Рассчитать среднее количество обучающихся в группах по колледжу. Сохранить под именем «Среднее количество в группах». «Интернет – Аптека» 1.Создать запрос выводящих покупателей за последние 2 месяца. «Последние заказы» 2.Расчитывать сумма заказа «Сумма заказа.» 3.Вывести покупателей сделавших заказ на сумму более 300 рублей и более 400. 4.Вывести заказы, которые были отправлены в течение последнего года. «Отправление» 5.Посмотреть новую цену товара. Если увеличить ее на 10%. 6.Расчитать стоимость заказа каждого покупателя «Стоимость» 7.Вывести товар, в которые вошли в более двух заказов «кол-во». 8.Поставить ограничения на данные (таблица «Заказы») Дата регистрации не должна превышать дату заказа. 43 Тема 2.3 Формы Студент должен: Знать: - технологию создания форм; - технологии создания подчиненных форм. Уметь: - создавать кнопки навигации; - создавать поле со списком в форме; - задавать значения по умолчанию; - устанавливать нестандартный фон формы; - создавать формы, отображающие данные из разных таблиц; - создавать подчиненные формы; - строить формы разных видов; - вводить формулы для вычисления данных. Иметь навык: - создания форм. ТЕОРИЯ Вопросы для повторения: 4. Понятие формы; 5. Виды форм, их характеристики; 6. Создание форм; 7. Форматирование форм (шрифты, фоны записей; пользовательский фон формы); 8. Способы вставки графических объектов в форму, их редактирование. 9. Добавление текущей даты и времени; 10. Добавление надписей; 11. Добавление кнопок навигации. Вопросы новой темы: 1. Создание и заполнение полей типа «Объект OLE»; 2. Способы вставки в форму подчиненной формы; 3. Задание дополнительных параметров полей формы; 4. Создание вычисляемых полей в форме. 44 СОЗДАНИЕ И ЗАПОЛНЕНИЕ ПОЛЕЙ ТИПА ОБЪЕКТА OLE 1. СОЗДАТЬ макет базы данных в режиме Таблица 2. Для поля, содержащего графические объекты, установить тип поля ОБЪЕКТ ТИПА OLE. 3. Создать Форму на основе таблицы-макета (лучше Форма в один столбец) 4. Для вставки графического объекта необходимо: а) Выделить поле Объекта типа OLE в режиме Форма (НЕ КОНСТРУКТОРА) б) вызвать контекстное меню, Добавить объект в) задать параметры вставки: I способ. Если графический объект должен отображаться в самой Форме • Поставить флажок на параметр Создать новый • Выбрать тип объекта (Рекомендуется «Рисунок MS Word» или «Рисунок PaintBrush» • В выделенное поле вставить рисунок из файла или из коллекции MS Word • Отредактировать рисунок по полю • Закрыть приложение • При необходимости вывести объект в виде значка II способ. Если графический объект создан (будет отображаться в Форме в виде ссылки и открываться в отдельном окне) • Поставить флажок на параметр Создать из файла • Задать полное имя файла (лучше брать файлы для рисунка со стандартными расширениями bmp, gif, doc и т.д.) (кнопка Обзор) • Установить флажок в параметре Связи • При необходимости вывести объект в виде значка III способ. Копирование через буфер обмена • В приложении (Word, Excel,Paint и т.д.) создать объект • Правка, Копировать • В Форме выделить область объекта типа OLE • Правка, Вставить. Размер, местоположение объекта задается в режиме Конструктора. Блокировка поля 45 Создание формы со вставкой подчиненной формы. 1.Формы → Создать таблицу с помощью мастера. 2.Указать главную таблицу и поля для формы из этой таблицы Выбор главной таблицы «Студенты» 3. Указать имя подчиненной таблицы Выбор подчиненной таблицы «Родители» 4. Повторить действия для других подчиненных таблиц * 5. Указать вид отображения подчиненной формы (тип – подчиненная или связанная). 46 Подчиненная форма может отображаться непосредственно в главной форме, а может в виде кнопки, щелкая на которую открываем подчиненную форму. 6.Следовать указаниям мастера. Задача 1 База данных «Студенты» 12. Открыть базу данных «Студенты» 13. Открыть таблицу Студенты, добавить поле «Фото» типа объект OLE 14. Создать форму «В один столбец» 15. Форма должна содержать поля: Номер зачетной книжки, Фамилия, Имя, Отчество, Подчиненные формы Дата рождения, Группа 16. Заполнить поле «Фото» для двух записей. Рисунок взять из папки, указанной преподавателем. 17. Отформатировать форму следующим образом: 6.1 Изменить фон формы (пользовательский фон), 6.2 Шрифты и фоны в полях, 6.3 Вставить заголовок формы, 6.4 Вставить две кнопки навигации 6.5 Вставить рисунок, как логотип, 6.7 Вставить Текущую дату 7. Добавить в таблицу Студенты поле «Стипендия». 8. Добавить это поле в форму 9. Установить для этого поля формат данных «руб.» 10. Создать форму «Студенты» с подчиненной формой «Родители». Тип подчиненной формы «Подчиненная» 11. Создать форму «Дисциплины» с подчиненной формой «Оценки». Тип подчиненной формы «Связанная» 47 Задача 2. База данных «Новогодние Подарки» (зачет) 1. Создайте файл базы данных «Новогодние Подарки». Разработаем базу данных для формирования новогодних подарков, состоящих из различных конфет. 2. БД должна содержать таблицы Конфеты, Содержание набора, Заказы. Описание таблиц: Конфеты содержит информацию о конфетах, из которых формируется набор, Заказы содержит информацию о клиентах, сделавших заказ и информацию о самом заказе, Содержание набора предназначена для связи таблиц Конфеты и Заказы. Таблицы должны содержать следующие поля: Конфеты Код Конфет Название Конфет Производитель Цена за кг Вид Конфет 3. Содержание набора Код Набора Код Конфет Количество конфет в наборе Заказы Код Набора Имя заказчика Дата Заказа Отметка об отправке Телефон Количество Наборов При создании Таблицы Конфеты необходимо: 3.1 Поля «Производитель» и «Вид Конфет» должны содержать список, включающий элементы: Производитель — Киев, Курск, Москва, Самара, С-Петербург; Вид Конфет — Шоколад, Карамель. 3.2 Отобразить данные в поле «Цена за кг» в денежном формате. 3.3 В поле «Название конфет» установить формат: большими буквами, красным цветом. 4 Содержание Таблицы «Конфеты» Поле «Этикетка» имеет тип объект OLE: Код Название Производитель Цена за Вид Этикетка конфет конфет кг. конфет БК Белочка Курск 96,30р. Шоколад БМ Белочка Москва 98,50р. Шоколад ДС Джелла С-Петербург 79,80р. Шоколад КК Кислинка Киев 67,80р. Карамель КМ Кара-Кум Москва 105,00р. Шоколад МС Мишка Самара 118,00р. Шоколад СС Стекляшки Самара 62,30р. Карамель Содержание Таблицы «Состав Набора» Код Код Кол-во Код Набора конфет конфет Набора 1 БК 3 3 1 КМ 4 3 1 СС 3 3 2 БМ 5 4 2 КМ 5 4 2 МС 5 4 Код конфет БМ МС КМ КМ МС СС Кол-во конфет 8 6 4 5 8 3 48 При создании Таблицы «Заказы» необходимо: 5 1. В поле «Телефон» ввести Маску ввода и Формат поля, которые учитывают разное количество цифр в номере, то есть при отображении убирают лишние пробелы. 2. В поле «Дата» данные не должны превышать текущую дату. При вводе недопустимого значения должно выводиться сообщение «Этот день еще не наступил», 7 3. По умолчанию в поле «Дата» должна стоять сегодняшняя дата, 4. Данные поля «Отметка об отправке» должны иметь значения либо «ДА», либо «НЕТ». Содержимое таблицы «Заказы»: Имя заказчика Отметка об Телефон отправке Иванов А.А. () 183-64-15 Петренко С.В. (234) 65-17-58 Сидорчук Н.Н. (8367) 15-17-25 Иванов А.А. () 183-64-15 Код Набора 1 2 3 4 Количество Дата наборов 6 22.01.07 3 12.02.07 4 23.01.07 4 14.02.07 8 Создайте связи между таблицами. 9 Создайте Форму «Конфеты» вида «В один столбец» 1. Форма должна содержать поля: Название конфет, Производитель, Цена за кг., Вид конфет, Этикетка 2. Заполните поле «Этикетка» для двух записей. Рисунок взять из папки, указанной преподавателем. 3. Отформатировать форму следующим образом: 9.3.1 измените фон формы (пользовательский фон), 9.3.2 измените шрифты и фоны в полях, 9.3.3 вставьте заголовок формы 9.3.4 вставьте две кнопки навигации 9.3.5 вставьте рисунок, как логоти, 9.3.6 вставьте Текущую дату 10 Создайте Главную и подчиненную Форму «Состав заказа». В главной и подчиненной форме должны отображаться данные полей, приведенных на образце, взятых из соответствующих таблиц. Задайте форматы для полей «Количество наборов», «Количество конфет» 49 Образец формы ВЫЧИСЛЯЕМЫЕ ПОЛЯ В ФОРМАХ Обратить внимание на невозможность использования созданного вычисляемого поля в других формулах ЗАЧЕТ Вычисляемые поля 1. Создайте Форму «Стоимость Заказа»: 1.1. Форма должна содержать Имя Заказчика, Код Набора, Количество наборов, Цену набора (значения поля взять из Запроса Цена набора). 1.2. Обеспечьте подсчет стоимости каждого заказа и подсчет общей суммы всех заказов. 1.3. В поле Количество наборов установите формат, указывающего единицы измерения «шт.», а в полях Цена набора, Цена заказа, Сумма Итого денежный формат. 1.4. Форма должна содержать заголовок. 1.5. Заблокируйте доступ пользователя к данным поля «Код заказа». Образец Формы 50 ЗАПРОСЫ Задания ЗАЧЕТ. Создайте ЗАПРОСЫ к базе данных «Новогодние Подарки», которые: 1. Выводит Названия конфет, которые не были включены в наборы. Сохранить данный запрос под именем «Не востребованные» Вид запроса 2. Рассчитывает количество конфет в каждом наборе. Сохранить под именем «Количество» Вид запроса 3. Рассчитывает цену набора с учетом того, что упаковка набора стоит 50 рублей, в 1 кг — 100 конфет. Сохранить под именем «Цена набора». Для создания Запроса используйте промежуточные запросы. Вид Запроса 4. Выводит тех заказчиков, заказ которых уже отправлен. Сохранить под именем «Отправка» 5. Выводит имена заказчиков, сделавших более одного заказа. Сохранить под именем «Более одного заказа». Вид запроса 6. Выводит имена тех заказчиков, которые сделали заказ в течение последней недели. Сохранить под именем «Последняя неделя» Для данного запроса измените даты в таблице. 51 7. Выводит названия конфет по введенной первой букве. Сохранить под именем «Первая буква» 2. Создайте Главную кнопочную форму и разместите на ней кнопки для доступа к формам «Стоимость заказа» и «Состав заказа», кнопки для запуска всех созданных запросов, а также кнопку для выхода из приложения. Отформатируйте форму, убрав лишние элементы окна Образец Формы 3. Сделайте Главную форму стартовой при запуске БД «Подарки » ОТЧЕТЫ Задания 1. Открыть базы данных Студенты. 2. Создать отчет, в котором подсчитывается количество человек в группах, а также рассчитать общее количество студентов 3. Сложный вариант. Создать отчет, в котором подсчитывается количество человек в группах и количество стипендий, а также рассчитать общее количество студентов и стипендий. 4. Создать отчет, в котором подсчитывается сумма, выплачиваемая в каждой группе и итоговая сумма на стипендии. 5. Создать отчет, в котором отображается средний размер стипендии и доплат по каждой группе и по всем студентам. 6. Отформатировать один отчет (на ваш выбор): вставить пользовательский фон отчета, логотип, разделительные линии, изменить шрифты. 7. Отредактировать все отчеты. Напомнить студентам, что функция «Количество» подсчитывает количество непустых полей, т. е. если в поле нет значений. Отчеты (зачет) 1. Открыть базы данных «Подарки» 52 2. Создать отчет «Количество», в котором подсчитывается количество наборов, приобретенных всеми заказчиками. 3. Создать отчет «Сумма заказов», в котором подсчитывается сумма заказов каждого клиента и общая сумма заказов. 4. Создать отчет «Средняя стоимость», в котором подсчитывается средняя стоимость заказов. 5. Создать отчет «Дата заказов», в котором рассчитывается сумма заказов по датам. 6. Отформатировать один отчет (на ваш выбор): вставить пользовательский фон отчета, логотип, разделительные линии, изменить шрифты. 7. Отредактировать все отчеты. 53