Мегаобучалка Главная | О нас | Обратная связь


ПО РЕАЛИЗАЦИИ УЧЕБНОГО ПРОЕКТА



2015-11-27 260 Обсуждений (0)
ПО РЕАЛИЗАЦИИ УЧЕБНОГО ПРОЕКТА 0.00 из 5.00 0 оценок




ЛАБОРАТОРНЫЕ ЗАНЯТИЯ

Целью лабораторных занятий является приобретение навыков реализации проекта ИС средствами СУБД MsAccess-2010 на примере рассмотренной в пособии учебной ИС «Общепит».

Занятия №1 и №2 посвящены созданию структуры таблиц и связей между ними (схемы данных), занятие № 3 – созданию форм для ввода и просмотра, ряд занятий посвящен проектированию запросов (№№ 4, 5, 6, 7), использованию макросов (№9) и VBA для модулей форм (№№ 10, 11), разработке и реализации интерфейса системы (№№ 2, 3, 4, 8, 12).

Занятия содержат краткие сведения о СУБД, необходимые для выполнения заданий, сами задания, а также указания и рекомендации. Задания в каждом занятии помечены значком темного прямоугольника.

 

 

Занятие 1. Создание структуры таблиц базы данных

 

1. Для запуска программы из главного меню панели задач выберите команду Программы/ Microsoft Office / Microsoft Office Access, либо щелкните на значок Access (с изображением ключика) на панели Microsoft Office или на рабочем столе.

§ Запустите программу Microsoft Access. При первом входе в программу с целью создания БД нужно выбрать - Новая БД

§ В правом нижнем углу нужно задать имя файла для Вашей БД. Задайте следующее имя: PIT_YY_№(здесь: YY- две последние цифры текущего года, № - ваш номер в списке группы). Сохраните файл в папке Документы. Далее открывается страница для создания структуры таблиц БД (в режиме Таблица).

§ Познакомьтесь с планкой меню и кнопками на стандартной панели инструментов.

2. Для создания структуры новой таблицыудобнее всего работать в режиме Конструктора. Для перехода в этот режим можно выбрать его в списке правой кнопки мыши, нажатой на имени таблицы. Откроется бланк для ввода имен полей (атрибутов) новой таблицы и их свойств. Внимательно изучите все предлагаемые свойства и аккуратно задавайте их в соответствии с нашим проектом, в противном случае могут возникнуть проблемы при связывании таблиц. Введите имена полей, задайте для них Тип данных. В окне Свойства поля задайте спроектированные для каждого поля свойства и ограничения.

3. Позаботьтесь о первичном ключе для каждой таблицы. По умолчанию Access сам заводит дополнительное ключевое поле с типом Счетчик, что не всегда является удобным и желательным. Запомните! Поля типа Счетчик заполняются автоматически. СУБД помещает число 1 в первую запись, число 2 – во вторую, и т.д. Нельзя изменить числа, которые Access вводит в это поле. Обратите внимание, что при удалении записи, значение счетчика тоже удаляется и в дальнейшем не будет использоваться. В связи с этими особенностями на начальных этапах обучения пользоваться этим типом ключа рекомендуется только для некоторых справочников или стержней. Ключи с другими типами значений можно задать путем выделения соответствующих полей и щелчка по изображению ключа на панели инструментов. Ключевые поля слева помечаются значкомключика. Обратите внимание на индексирование ключевых полей:несоставные ключи индексируются автоматически, а о правильном индексировании составных ключей нужно позаботиться самим.

4. Для сохранения описания новой таблицы выберите кнопку Сохранить на главной панели. Задайте имя таблицы. Пустая таблица появится в списке таблиц. Для создания структуры следующей таблицы выберите Создание/Таблица.

§ В режиме конструктора создайте и сохраните под соответствующими именами структуры всех таблиц БД «Общепит». Старайтесь, чтобы имена таблиц и их полей совпадали с теми, которые были нами спроектированы.

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

Важное замечание.Если при открытии БД на панели активных элементов появляется предупреждение системы безопасности: «Часть содержимого БД отключена», обязательно нужно войти в Параметры и включить это содержимое.

6. Изменение структуры таблицы удобно производить в режимеКонструктора.

§ Создайте в таблице БЛЮДО еще одно поле Цена.

§ Перенесите столбец Дата_п таблицы ПОСТАВКА на третье место (после столбца Код_ пр)

7. Для контроля за вводом значений в поля, имеющие заранее определенный набор значений (перечислимый домен), можно использовать Поля со списком. На вкладке Подстановка в поле Тип элемента управления установите Поле со списком. В появившихся дополнительных полях выберите Тип источника строк/Список значений и введите в поле Источник строк небходимые значения, перечислив их через точку с запятой.

§ Задайте для поля Вид таблицы БЛЮДО список значений: Закуска;Суп; Горячее;Десерт;Напиток. В свойстве Ограничиться списком выберите Да.

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

§ Задайте условие контроля диапазона для поля Вес_г в таблице СОСТАВ: 1<= Вес_г <= 500. Обратите внимание на правильную (как в языках программирования!) запись этого логического выражения.

§ Задайте сообщение об ошибке.

§ Проанализируйте поля всех таблиц на предмет задания доменных и диапазонных ограничений и, если необходимо, задайте их.

 

Занятие 2. Создание связей между таблицами и ввод данных в базу данных

1. Для установления связеймежду таблицами БД войдите в Работа с базой данных/Схема данных, появится пустой макет схемы и окно Добавление таблицы. Добавьте в макет все созданные таблицы. Связи устанавливаются способом “drag-and-drop” (связываем поля, не отпуская клавиши мыши) от первичного ключа целевой таблицы к соответствующему внешнему ключу связи. При создании каждой новой связи появляется диалоговое окно с отображением связанных таблиц и их полей. В нем необходимо задать ограничения целостности для каждого внешнего ключа и параметры соединения связанных таблиц. MS Access поддерживает каскадное (CASCADE) и ограниченное (RESTRICT) удаление и обновление связанных полей. Если отметить обеспечение целостности и не задать каскадный режим, то будет установлен ограниченный режим. Следите, чтобы определенный Access типотношения (один-к-одному, один-ко-многим, многие-ко-многим и т.п.)совпадал с тем, что было спроектировано для этой связи.

2. Для того чтобы выбрать параметры соединения связанных таблиц (это будет необходимо при выполнении запросов), нужно щелкнуть Объединениеи установить соответствующий флажок: 1-внутреннее соединение, 2,3 - разновидности внешних соединений. Пока не возникла другая необходимость, установите флажок 1 .

3. Для удаления уже созданной связи проще всего ее выделить и нажать Delete.

4. Для удаления всех связей щелкните Очистить макет на панели инструментов.

§ Разработайте ограничения целостности для всех внешних ключей всех связей и создайте макет схемы данных для БД «Общепит».

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

5. Самый простой, но удобный только для небольших таблиц, способ внесения данных в таблицы: на вкладке Таблицы открыть требуемую таблицу и заполнить ее данными. При заполнении поля типа Логический достаточно нажать пробел, чтобы отметить это поле как истинное. При заполнении строки запись справа помечается значком с изображением карандаша. Последняя запись помечается изображением звездочки.

§ Пользуясь реляционной теорией, обоснуйте тезис: «Таблицу нужно обязательно заполнять по строкам».

§ В режиме Таблица заполните данными следующие таблицы: БЛЮДО, ПРОДУКТ, ГОРОД.

6. Заполнение таблиц данными удобно производить с использованием форм. Если Вы хотите создать форму для ввода (и просмотра) данных в таблицу, выделите нужную таблицу и щелкните на вкладку Создание. Далее нужно выбрать метод создания формы. Самую простую столбцовую форму можно автоматически создать, выбрав вкладку Форма. При этом форма открывается в режиме Макета,в котором отображаются и данные (если они есть). Кроме того, в этом режиме можно производить и простое редактирование (изменять размеры полей, сделать содержательные заголовки и т.д.)

7. В режиме Форма также автоматически можно создавать и простые подчиненные формы, в которых отображаются данные из связанных отношением один-ко-многим таблиц. Например, для таблиц ПОСТАВЩИК и ПОСТАВКА можно, создавая форму для ПОСТАВЩИК, отобразить в ней и поставки каждого поставщика. Важное замечание.В режиме Форма такие подчиненные формы создаются для таблиц, связанных отношением один-ко многим толькос однойтаблицей. Более сложные подчиненные и многотабличные формы создаются в режиме Конструктора.

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

§ В режиме Форма создайте формы для уже заполненных данными таблиц: ПРОДУКТ и ГОРОД. Для последней создайте подчиненную форму с отображением данных из таблицы ПОСТАВЩИК.

§ С помощью Мастера создайте столбцовые (в один столбец) формы для таблицы РЕЦЕПТ (с отображением названий блюд), ленточные для ПОСТАВКА, СОСТАВ (с отображением названий блюд и продуктов), и подчиненные для БЛЮДО и РЕАЛИЗАЦИЯ.

§ Заполните все таблицы данными.

§ Добавьте (используя созданные формы) новые записи в следующие таблицы, проконтролировав при этом соблюдение заданных вами в схеме данных ограничений целостности:

- в таблицу ПРОДУКТ 2-3 новых продукта;

- в БЛЮДО 1- 2 новых блюда различных видов;

- в СОСТАВ внесите информацию о новых блюдах, предусмотрев отсутствие использования какого-либо из вновь введенных продуктов;

- в РЕЦЕПТ добавьте рецепты для новых блюд;

- в РЕАЛИЗАЦИЯ добавьте записи о реализации блюд еще за 1-2 даты, предусмотрев отсутствие реализации какого-либо из вновь введенных блюд.

- в ПОСТАВКА внесите поставки новых продуктов (поставляются уже известными поставщиками), предусмотрев отсутствие поставки для какого-либо из вновь введенных продуктов;

§ Сделайте попытку удаления из таблицы БЛЮДО различных блюд (реализованного и не реализованного) и проследите, как это действие отразится на связанных таблицах.

§ Сделайте попытку удаления из таблицы ПРОДУКТ продукта: a) используемого в настоящий момент в приготовлении блюд; б) не используемого в приготовлении ни одного блюда. Проверьте, как поддерживаются заданные вами ограничения целостности по связанным таблицам.

§ В таблице ГОРОД переименуйте Киев в Киев Великий и проследите каскадирование этого изменения.

 

 

Занятие 3. Создание форм в режимеКонструктора

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

1. Предварительно удобно создать одну из автоформ, открыть ее, а затем уже дорабатывать в режиме Конструктора (выбрав этот режим в списке правой кнопки мыши, нажатой на имени формы ).Откроется окно формы, при этом проследите, чтобы появилась и панель инструментов Конструктора.

§ Изучите панель инструментов, создание управляющих элементов формы и действия основных клавш на панели инструментов Конструктора: Надпись, Поле, Поле со списком, Кнопка и т.д.

2. Окно формы может состоять из нескольких областей: Заголовок формы, Область данных, Колонтитулы и Примечания. Область данныхприсутствует всегда, а остальные можно включить или выключить с помощью свойств:щелкнув правой кнопкой мыши на области данных, установить нужный вид формы.

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

§ Создайте автоформу для таблицы ПОСТАВЩИК и доработайте ее, создав поле со списком для поля Назв_города. В качестве источника значений задайте соответствующее поле таблицы ГОРОД.

4. Для включения в форму целевой таблицы нескольких подчиненных форм для связанных с ней таблиц можно «перетащить» нужные таблицы из вкладки Таблицы, при этом автоматически подключается Мастер подчиненных форм. Можно также воспользоваться кнопкой Подчиненная форма/Отчет на панели инструментов.

§ Создайте удобную подчиненную форму для работы Повара, используя таблицы БЛЮДО (главная таблица) и подчиненные: РЕЦЕПТ и СОСТАВ.

5. Для отображения в форме справочной информациииз других (связанных с ней) таблиц и удобного ввода (особенно числовых кодов!) можно создать форму в режиме Пустая форма. Здесь можно из раскрывающегося списка таблиц выбрать нужные поля и «перетащить» их в форму.

§ Создайте удобную форму для ввода данных в таблицу ПОСТАВКА, в которой отобразите справочные поля ФИО из ПОСТАВЩИК и Назв_пр из ПРОДУКТ, а в области примечания формы создайте кнопки для добавления новой записи и поиска по образцу.

6. Связь с другими программами MSOffice.

Чтобы переправить(экспортировать)таблицу в другую программу Office (например, в Ms Excel или Ms Word ), выделите объект, подлежащий экспорту, войдите во Внешние данные/Экспорт, выберите нужную программу и совершите операцию экспорта. Объект автоматически преобразуется в нужный формат и Вы сможете работать с ним в другой программе Ms Office.

§ Экспортируйте таблицу РЕАЛИЗАЦИЯ в программу MS Excel и создайте для нее наглядные диаграммы реализации блюд по датам.

 

 

Занятие 4. Создание отчетов на базе таблиц и простых запросов

 

Создание отчетов производится аналогично созданию форм.

1. Для создания отчета на базе таблицы нужно выделить таблицу и войти в Создание. Затем выбрать один из предлагаемых режимов создания отчетов: Отчет (для создания простого автоотчета) или Конструктор отчетов (для создания более удобных и сложных отчетов). Как и в случае форм, рекомендуется сначала создать автоотчет, а затем дорабатывать его в режиме Конструктора.

§ На основе таблицы БЛЮДО создайте автоотчет в виде Меню, задайте содержательный заголовок отчета.

2. Выполнение вычисленийв отчетах и создание вычисляемых полей в режиме Конструктора. Поля с вычисляемыми значениями обычно располагают в области заголовка или в области примечания. Для создания дополнительного поля нужно щелкнуть на Добавить Поле панели инструментов и в области заголовка (или примечания) и вычертить рамку. В окне Поле ввести подпись к полю, а в окне Свободное нужно набрать соответствующую формулу (начинающуюся со знака равенства) для вычисления значения данного. Например, для подсчета суммы значений данных какого-либо столбца вводим формулу: =sum([имя столбца]), а для отображения текущей даты: = New().

§ Войдите в режиме Конструктора и доработайте отчет по таблице БЛЮДО: в области заголовка вставьте поле с текущей датой (оно может вставляться и автоматически!); сделайте более понятными для клиентов названия столбцов; сделайте группировку по виду блюда.

§ Создайте автоотчет на основе таблицы ПОСТАВКА, затем войдите в в режим Конструктора.Измените заголовки столбцов на более содержательные.

§ Создайте в области заголовка поле с названием «Общий вес поставок в кг» ,а в качестве значений данных задайте сумму всех значений поля Вес_кг.

§ Создайте в области примечания поле с названием «Общая стоимость поставок в руб», а в качестве значений данных задайте соответствующую формулу.

3. Создание простых запросов. Для формирования запроса войдите в Создание и выберите режим создания запроса: Мастер запросов или Конструктор запросов. Самые простые однотабличные, перекрестные и итоговые запросы можно создавать с помощью Мастера. Вам будет предложено указать таблицу, выводимые в запрос поля и имя запроса. После нажатия кнопки Готово запрос выполняется и выдается результат в виде таблицы. Сформированный Мастеромзапрос можно просмотреть в режиме Конструктораи в виде оператора SQL, нажав правую кнопку мыши на имени запроса.

§ С помощью Мастера создайте запрос под именем ЗапросN_1 ( N–ваш номер всписке группы) для вывода полей Назв_бл и Цена из таблицы БЛЮДО. Просмотрите результат в виде таблицы, в Конструкторе и в виде оператора SQL.

4. Для создания запросов с условиями отбора и многотабличных запросов рекомендуется использовать режим Конструктора. При входе в него открывается бланк запроса и окно Добавление таблицы, с помощью которого мы можем добавить в бланк запроса все таблицы, необходимые для выполнения запроса.Таким образом нужно создать подсхему запроса, т.е. совокупность связанных таблиц, участвующих в выполнении запроса. Далее в бланке запроса нужно выбрать (с помощью открывающихся списков) или «перетащить» из таблиц необходимые поля. Строка Вывод на экран показывает, будет ли отображаться данное поле при просмотре результатов запроса. В строке Условие отбора можно задать условие для отбора строк в результат запроса. Это обычное логическое выражение, записанное по правилам языков программирования, например: >= 100 And <= 1000.

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

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

7.Для выполнения сформированного запроса проще всего щелкнуть кнопку Выполнить на панели инструментов (с изображением красного восклицательного знака).

§ В режиме Конструктора создайте запрос на вывод названий продуктов с калорийностью, меньшей 1000 и упорядоченной по возрастанию. Сохраните результаты запроса (ЗапросN_2). Просмотрите его вSQL-форме.

§ Создайте запрос на вывод ФИО поставщиков, отсортированных по алфавиту, и названий продуктов, используемых для приготовления Лобио. Сохраните его под именем ЗапросN_3.

§ Измените предыдущий запрос так, чтобы сортировка происходила по двум полям: ФИО и Назв_Пр (ЗапросN_3_1).

§ Измените запрос так, чтобы данные сначала сортировались по Назв_Пр, а потом по ФИО (ЗапросN_3_2).

Занятие 5. Создание более сложных запросов в режиме Конструктора

§ Создайте запрос (ЗапросN_4), выбирающий полную информацию о поставщиках, поставивших продукты (Назв_пр) для приготовления закусок в течение октября месяца текущего года.

1. Для создания новых (вычисляемых) полей в запросах нужно в пустую ячейку строки Поле ввести строку: «имя нового столбца :(двоеточие) выражение». Значение выражения будут браться в качестве данных для нового столбца. Например, СТОИМОСТЬ:[Вес_П(кг)]*[Цена]. Обращаем внимание, что в выражении имена столбцов заключаются в квадратные скобки.

§ Модифицируйте ЗапросN_4 так, чтобы выдать информацию о стоимости каждой поставки (ЗапросN_4_1).

2. С помощью запросов с параметрамиможно предоставить пользователю возможность самому ввести Условие отбора в режиме диалога. Для каждого поля, в которое предполагается вводить такое условие (это поле и называется параметром запроса), Access создает диалоговое окно для ввода значения параметра. В диалоговом окне можно отобразить и текст-подсказку. Для этого нужно в строку Условие отбора поля-параметра ввести текст подсказки в виде: [текст] либо в случае отбора из диапазона: «Between [текст1] And [текст2]». Например, если для поля Вес_кг в запросе по таблице ПОСТАВКА в строку Условие отбора ввести: «Between [Введите нижнюю границу веса поставки] And [Введите верхнюю границу]», в двух открывающихся окнах можно задавать диапазон по весу выводимых в запрос поставок.

§ Модифицируйте ЗапросN_4 так, чтобы сделать параметрами сроки поставок и в запросе делать отбор по датам поставок, введя начальную и конечную даты срока. (ЗапросN_4_2).

3. Для того чтобы включить в запрос необходимые итоговые результаты по группам данных(данные с одинаковыми значениями какого-либо столбца), нужно использовать групповые операции. Выделите столбец, по значениям которого вы хотите сгруппировать данные в запросе, и щелкните Итоги на панели инструментов. На бланке запроса (во всех столбцах!) появится строка Группировка, в которой можно выбрать из списка и задать операции над данными каждой группы столбца группировки (суммирование, вычисление среднего, максимального и минимального и т.д.).Если задавать несколько столбцов для группировки, следует помнить, что главным столбцом для нее является первый,самый левый столбец, и заданные итоговые результаты вычисляются только для этого столбца.

§ Создайте запрос (ЗапросN_5) с информацией: вид, название блюда, вес одной порции, цена.

4. Создание перекрестных запросов. Перекрестные запросы обычно используются для удобного отображения данных из таблиц с включением некоторых итоговых расчетов (различных сумм, средних и т.п.), выполненных по данным какого-либо одного столбца таблицы или запроса. Данные выводятся в компактном формате в виде двумерной таблицы, как, например, в Excel. Для строк и столбцов перекрестного запроса можно выводить заголовки, в качестве которых используются значения из каких-либо двух столбцов исходной таблицы. Создавать простые однотабличные перекрестные запросы проще всего с помощью Мастера, для этого необходимо войти в меню Создание/Мастер запросов/Перекрестный запрос. Далее, действуя по предлагаемой последовательности, установить заголовки строк и столбцов, задать столбец - источник значений или формулу для вычисления значений. Если требуется в перекрестный запрос добавить данные из других таблиц, то можно открыть этот запрос в режиме Конструктора, добавить нужные таблицы и отредактировать его нужным образом, например, изменив заголовки строк и столбцов.

§ С помощью Мастерапо таблице СОСТАВ создайте перекрестный запрос (ЗапросN_6) в виде следующей двумерной таблицы: по строкам – Код_ бл, по столбцам – Код_пр, в ячейках – Вес_г продукта, используемого при приготовлении порции блюда. Отобразить в каждой строке и вес порции блюда.

§ Модифицируйте ЗапросN_6 (ЗапросN_6_1) так, чтобы в качестве заголовков строк стали названия блюд, а столбцов - названия продуктов.

 

Занятие 6. Проектирование запросов на самосоединение и внешние соединения

1. Запросы на самосоединение. Самосоединение - это внутреннее соединение таблицы самой с собой. Для того чтобы реализовать самосоединение в режиме Конструктора, нужно создать виртуальную копию таблицы под другим именем (псевдонимом), а затем действовать так же, как при соединении двух разных таблиц. Для создания копии в MsAccess достаточно дважды добавить таблицу в бланк запроса. После того, как в бланк запроса добавлена копия, нужно ее соединить (так же, как это делалось при создании связей в схеме данных) с основной таблицей по нужному для выполнения запроса полю. Обратите внимание на задание условия отбора в результат запроса с тем, чтобы не выдавать лишних строк!

§ Спроектировать запрос (ЗапросN_7) на выдачу пар блюд, в приготовлении которых используются одинаковые продукты, в виде (Код_бл, Код_бл, Код_пр). Обратите внимание,чтобы в каждой строке результирующей таблицы коды блюд были разными и не было строк, отличающихся только порядком следования значений Код_бл (например, строк с кодами: 1,2 и 2,1).

§ Модифицируйте предыдущий запрос (ЗапросN_7_1) так, чтобы результат выдавался в виде (Назв_бл, Назв_бл, Назв_пр).

§ Внести в таблицу ПОСТАВЩИК новые строки, содержащие поставщиков с одинаковыми фамилиями. Сформулировать и выполнить запрос (ЗапросN_8) на выдачу информации о поставщиках-однофамильцах.

2. Запросы с внешними соединениями.Необходимость в таких запросах возникает, когда в результат многотабличного запроса нужно выводить не только строки, в которых значения связанных столбцов совпадают, но и строки с отсутствующими значениями в одной из связанных таблиц. Например, нужно вывести информацию о ежедневной реализации блюд (Дата_р, Назв_блюда, Колич ), отобразив в ней все приготавливаемые блюда так, что, если в какую-либо дату какое-то блюдо не было реализовано, то в поле Колич было бы пустое значение. Есть два типа внешних соединений: левое (LEFT JOIN) и правое (RIGHT JOIN). В случае левого соединения двух таблиц Т1 и Т2 в запрос выдаются всестроки из T1, а выводимые поля из T2 в строках с отсутствующими в ней значениями заполняются NULL-значениями. В случае правого соединения в запрос выдаются все строки из T2, а выводимые поля из T1 в случае отсутствия какого-либо значения заполняются NULL-значениями. Чтобы задать тип внешнего соединения для таблиц, участвующих в запросе, необходимо его отметить в Параметрах объединения. Чтобы войти в окно Параметры объединения, достаточно дважды щелкнуть на линии связи соединяемых таблиц в подсхеме данных на бланке запроса и отметить нужный тип внешнего соединения (2 или 3). После установления типа соединения на линии связи таблиц появляется соответствующая стрелка, которая фактически указывает на ту таблицу, в которой могут отсутствовать связанные записи (вместо них в результате запроса будут пустые значения).

§ Сделать копию таблицы ПОСТАВКА. Удалить из копии ПОСТАВКА строки с Код_пр=2 и Код_пр=7. Сформулировать запрос (ЗапросN_9) на выдачу информации о поставках продуктов, необходимых для приготовления всех блюд, в виде: (Код_бл, Код_пр, Дата_п). В строках с удаленными или не поставленными продуктами в поле Дата_п должно быть пусто.

§ Модифицировать предыдущий запрос так, чтобы информация выдавалась в виде: (Назв_бл, Назв_пр, Дата_п) (ЗапросN_9_1).

 

Занятие 7. Проектирование вложенных запросов и использование подзапросов для изменения данных в таблицах

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

§ С помощью запроса к таблице ПРОДУКТ выдать названия продуктов, калорийность которых больше калорийности фасоли (ЗапросN_10).

§ С помощью запроса к однойтаблице ПОСТАВЩИК выдать информацию о поставщиках, проживающих за рубежом (ЗапросN_11).

§ С помощью запроса к таблице ПРОДУКТ выдать информацию о тех продуктах, вес которых при приготовлении одной порции блюда превышает средний вес всех используемых при приготовлении одной порции продуктов (ЗапросN_12).

§ С помощью запроса к однойтаблице ПОСТАВЩИК выдать информацию о поставщиках (ФИО, Назв_города), которые поставляют все продукты. (ЗапросN_13).

2. Использование подзапросов для изменения данных в таблицах. Иногда бывает удобно автоматизировать изменение данных в таблицах: добавление новых строк, обновление некоторых полей или удаление строк.

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

При выполнении таких действий запрос вкладывается в операции добавления, обновления или удаления. В MsAccess для этих целей существуют специальные типы запросов, которые можно спроектировать в режиме Конструктора. После добавления таблиц в бланк запроса на панели инструментов появляются кнопки со следующими типами специальных запросов: Запрос на добавление; Запрос на обновление; Запрос на удаление; Запрос на создание таблицы.

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

§ Создайте в БД таблицу НОВЫЙ_ПРОДУКТ, предназначенную для хранения информации о новых продуктах, которые предполагается использовать. Для этого сначала путем копирования структуры таблицы ПРОДУКТ создать структуру новой таблицы: в списке правой кнопки мыши, нажатой на имени таблицы ПРОДУКТ выбрать Копировать, потом Вставить, а затем в раскрывшемся окне – Копировать только структуру. Обратите внимание, что, если в таблице, структуру которой мы копируем (в нашем случае ПРОДУКТ), используется первичный ключ типа Счетчик, то в созданную новую таблицу (в нашем случае НОВЫЙ_ПРОДУКТ ) это поле (в нашем случае Код_пр) копировать не нужно и необходимо его удалить из структуры новой таблицы.

§ Заполните вновь созданную таблицу двумя-тремя строками с информацией о новых продуктах. Затем создайте и выполните запрос на добавление информации о новых продуктах в базовую таблицу ПРОДУКТ.

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

§ Обновите столбец Цена таблицы ПОСТАВКА следующим образом: у тех поставок, вес которых превышает 100 кг, цена за кг снижается на 5%.

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

§ Создайте копию таблицы ПОСТАВКА под именем КОПИЯ_ПОСТАВКА (скопируйте и структуру, и данные). Удалите из таблицы КОПИЯ_ПОСТАВКА поставки за август месяц.

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

§ Создайте новую таблицу по запросу ЗапросN_5.

§ Каким объектом БД является созданная таблица и с помощью какого оператора SQL она создается?

 

 

Занятие 8. Создание отчетов на базе запросов с параметрами. Элементы пользовательского интерфейса

1. Создание отчетов на базе запросов. Часто возникает необходимость создавать отчет на основе запроса. Для этого его выделяют и действуют аналогично созданию отчета на базе таблицы. Для того, чтобы отобразить в отчете значения вводимых в запросе параметров (это обычно делают в области заголовка или примечения) необходимо в этой области создать новое вычисляемое поле и в качестве источника данных для него написать формулу с использованием значений вводимых параметров. Для отображения значений параметров обычно лучше создавать одно текстовое поле.Причем, ссылки на значения вводимых параметров синтаксически выглядят так: [имя вводимого параметра, используемое в диалоговом окне для его ввода в запросе].

§ Используя Мастер отчетов, создайте отчет по запросу ЗапросN_4_2, сделав содержательный заголовок всего отчета и заголовки столбцов, отсортировав в нем поле даты (по убыванию). Просмотрите отчет. Обратите внимание на открывающиеся диалоговые окна для ввода параметров запроса.

§ Войдите в режим Конструктора и доработайте отчет. В области заголовка создайте текстовое поле с отображением параметров в виде: С Значение начальной даты По Значение конечной даты. В нашем случае формула для значения текстового поля может иметь вид: = «С» & [имя параметра1] & «По» & [имя параметра 2]. В область примечания отчета включите итоговый расчет по общей стоимости поставок.

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

§ Создать кнопочную форму для ввода параметров следующего запроса: Выдать следующую информацию о поставках заданного продукта (Код_пр - параметр запроса) в заданный промежуток времени (начальная и конечная даты срока – параметры запроса): Назв_пр, ФИО, Назв_города, Вес_п, Цена, Дата_п.

Последовательность действий может быть такой:

а) Спроектируем запрос на выдачу необходимой информации (назовем его Запр_Вв_Пар), выведем в запрос и Код_пр. Пока, до создания формы для ввода параметров, можно не задавать условия отбора для полей, являющихся параметрами запроса.

б) Далее создадим кнопочную форму для ввода трех параметров (Код_пр, НачДата и КонДата) с выбором их значений из соответствующих таблиц. Войдите в Создать/Пустая форма и последовательно создайте сначала три кнопки для полей со списком (Combo Box).

Рассмотрим, как это сделать, напри



2015-11-27 260 Обсуждений (0)
ПО РЕАЛИЗАЦИИ УЧЕБНОГО ПРОЕКТА 0.00 из 5.00 0 оценок









Обсуждение в статье: ПО РЕАЛИЗАЦИИ УЧЕБНОГО ПРОЕКТА

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (260)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.019 сек.)