Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ. курсовая по базам.doc
Скачиваний:
9
Добавлен:
23.11.2018
Размер:
154.62 Кб
Скачать

Занятие 3. Создание простых отчетов

Конечным продуктом приложений баз данных является отчет. Наиболее простым способом создания отчета является использование «Мастера отчетов». Процесс создания отчета с его помощью похож на процесс создания формы с помощью «Мастера форм». Создадим отчет «Список студентов по группам». Для этого выполните следующие действия:

  1. Раскройте вкладку «Отчеты» в окне базы данных, а затем щелкните кнопку «Создать». Появиться диалоговое окно «Новый отчет».

  2. Выберите таблицу Student в раскрывающемся списке. Из списка в правом верхнем углу выделите «Мастер отчетов» и нажмите кнопку «ОК». На экране появится начальное окно «Мастера отчетов».

  3. Прежде всего, необходимо определить какие поля будут образовывать строки отчета. Для нашего случая будем считать, что необходимы все поля, но предположим, что вывод фамилии должен предшествовать выводу номера зачетки. Поэтому будем выделять поля в списке «Доступные поля» в следующем порядке: SGroup, FIOS, NZach, YearEnter. После выделения каждого поля нажмите кнопку «>». Поле переместится в список «Выбранные поля» в том порядке, в котором они выбирались в списке «Допустимые поля». Нажмите кнопку «Далее», чтобы перейти ко второму диалоговому окну.

  4. Для данного отчета имеет смысл выбрать группирование по шифру группы. Для этого выберите в первом раскрывающемся списке поле SGroup и щелкните по кнопке «>» и нажмите на кнопку «Далее».

  5. В пределах группы можно сортировать записи по значению произвольного поля. Поле SGroup не предлагается в диалоговом окне в качестве варианта, поскольку по данному полю ведется группирование. Выберите в раскрывающемся списке поле FIOS. По умолчанию принят порядок сортировки по возрастанию. Если необходимо выбрать порядок сортировки по убыванию, нажмите на кнопку справа от раскрывающегося списка. Нажмите на кнопку «Далее».

  6. «Мастер отчетов» предложит выбрать для отчета один из стилей макета. Для этого отчета выберите переключатель «Ступенчатый». Для перехода к следующему диалоговому окну нажмите кнопку «Далее».

  7. Выберите для своего отчета один из предопределенных стилей, например, для этого отчета выберите стиль «Строгий». Нажмите на кнопку «Далее» для перехода к последнему диалоговому окну.

  8. В качестве заголовка отчета введите Список студентов по группам и нажмите кнопку «Готово».

Отредактируйте макет созданного отчета с помощью «Конструктора отчетов». Это делается фактически также как и для форм.

Задание. Создайте отчеты на основе имеющихся таблиц в соответствии с заданием преподавателя. Исследуйте различные возможности (группирование, сортировка, подведение итогов, стили), предоставляемые «Мастером отчетов».

Задание 4 Создание простых запросов (qbe).

Запрос по образцу (Query by Example, QBE) предназначается для пользователей приложений БД, чтобы они могли осуществить поиск данных без знания языков программирования.

Чтобы создать простой запрос, формирующий список студентов, содержащихся в базе, необходимо выполнить следующие действия:

  1. Раскройте вкладку «Запросы» в окне базы данных и выберите «Создать в режиме конструктора». Нажмите кнопку «ОК».

  2. В диалоговом окне «Добавление таблицы» выберите таблицу Student и нажмите кнопку «Добавить». После того как выбрана таблица, нажмите кнопку «Закрыть».

  3. Список полей таблицы «Student» появляется в верхней панели слева, а пустой бланк запроса по образцу – в нижней панели. Список полей содержит имена всех полей таблицы «Student». Установите в первом столбце бланка запроса Student.*.

  4. Сохраните запрос под именем «Список студентов».

По умолчанию создается запрос на выборку, который возвращает данные, выбранные из таблицы. Новому запросу по умолчанию присваивается имя «Запрос 1», до тех пор пока ему не присвоено нужное имя. Запустите полученный запрос на выполнение, используя соответствующую кнопку на панели инструментов.

Окно конструктора запросов имеет следующий вид:

В дальнейшем будем изображать только бланк запроса.

Добавление полей в запрос:

Немного преобразуем предыдущий запрос. Пусть требуется создать список фамилий студентов и группы, в которых они учатся. Для этого:

  1. Вызовите конструктор запросов для запроса «Список студентов».

  2. При открытом окне конструктора запросов курсор находится в строке «Поле» бланка запроса в первой колонке. Нажмите кнопку списка, расположенную в первой колонке и выберите поле SGroup.

  3. Второе поле определим с помощью перетаскивания. Для этого в списке полей таблицы Student в верхней панели окна конструктора выделите поле FIOS и, удерживая левую кнопку мыши, перетащите поле во вторую колонку строки «Поле» в бланке запроса по образцу. Бланк запроса по образцу будет иметь вид:

Поле:

SGroup

FIOS

Имя таблицы:

Student

Student

Сортировка:

Вывод на экран:

Условие отбора:

или:

4. Выполните запрос.

Задание условий выбора и порядка результатов сортировки:

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

  1. Войдите в режим конструктора запроса и в столбце бланка запроса, содержащим поле SGroup, в строке Условие отбора наберите шифр группы, имеющийся в таблице. Пусть, например, это будет «АП51». По умолчанию предполагается проверка условия равенства. Другие отношения (<>, >=, <=, >, <, Like, In, Between) необходимо указывать.

  2. Сбросьте флажок в строке «Вывод на экран» для поля SGroup, чтобы оно не отображалось при запуске запроса.

  3. Встаньте на столбец FIOS в строку «Сортировка» и нажмите клавишу <F4>, чтобы отобразить список способов сортировки. Выберите способ сортировки «по возрастанию». Бланк запроса примет вид:

Поле:

SGroup

FIOS

Имя таблицы:

Student

Student

Сортировка:

По возрастанию

Вывод на экран:

Условие отбора:

“АП51”

или:

  1. Выполните запрос.

Вызов запросов из формы:

Пусть необходимо создать запрос, осуществляющий вывод списка студентов из группы, определяемой пользователем. Для этого выполните следующие действия:

  1. Создайте в режиме конструктора форму «Список студентов в группе». При создании формы не указывайте источник данных.

  2. Установите на форме элемент управления: Поле со списком с наименованием «Шифр группы». Нажмите на панели инструментов кнопку «Мастер элементов», если она не утоплена. Таблица Group содержит шифры групп, из которых будет осуществляться выбор. Поэтому в первом окне «Мастера списков» установите переключатель «Таблица или запрос …» и нажмите кнопку «Далее».

  3. В списке нового диалогового окна выберите таблицу Group. Нажмите кнопку «Далее». Появится третье диалоговое окно «Мастера списков».

  4. Для создаваемого списка необходимо поле SGroup. Поэтому выделите это поле в списке «Доступные поля» и нажмите кнопку «>» для перемещения поля в список «Выбранные поля». Нажмите кнопку «Далее». Появится следующее окно.

  5. В этом окне отображается список значений для поля со списком. Убедитесь, что флажок «Скрыть ключевой столбец» сброшен. Нажмите кнопку «Далее».

  6. В последнем диалоговом окне можно установит подпись поля со списком. В текстовом окне этого диалогового окна введите Шифр группы и нажмите кнопку «Готово».

  7. Вернитесь в бланк запроса. Встаньте на строку «Условие отбора» первого столбца и удалите, содержащийся там текст. Щелкните правой клавишей и выберите команду «Построить». Появится окно «Построителя выражений». В этом окне в нижнем левом углу содержится список всех используемых объектов. Выберите Form и раскройте список всех форм, в этом списке выберите форму «Список студентов в группе».

  8. В среднем нижнем окне появится список элементов управления, находящихся на форме. Выберите Поле со списком Шифр группы и щелки щелкните клавишу «Вставить». Нажмите «ОК», чтобы закрыть «Построитель выражений». Бланк запроса должен принять вид.

    Поле:

    SGroup

    FIOS

    Имя таблицы:

    Student

    Student

    Сортировка:

    По возрастан

    Вывод на экран:

    Условие отбора:

    Forms![Список студентов в группе]![Шифр группы]

    или:

  9. Вернитесь в конструктор форм.

  10. Отключите на панели кнопку «Мастер элементов» и установите на панели кнопку управления. Установите для этой кнопки свойство «Название»: «Список_студентов». Выберите в свойствах вкладку «События». Среди событий выберите событие «Нажатие кнопки» и в появившемся списке выберите пункт «Программа». Введите текст DoCMD.OpenQuery “Список студентов”.

  11. Вызовите форму на выполнение. Выберите с помощью выпадающего списка шифр группы и нажмите кнопку управления.

Использование более сложных условий.

Пусть требуется построить следующий запрос: «Построить список студентов заданной группы, поступивших в институт либо после 2002 года, либо до 1999». Условие, по которому будут выбираться данные в запросе, можно записать следующим образом:

Forms![Список студентов в группе]![Шифр группы]  ((YearEnter => 2002)  (YearEnter <= 1999)).

Для того чтобы построить данный запрос выполните следующие действия:

  1. Откройте предыдущий запрос в режиме «Конструктора».

  2. Добавьте в третий столбец бланка запроса поле YearEnter.

  3. В строке Условие отбора этого столбца установите =>2002, а в стоке Или - <= 1999.

  4. Вызовите форму на выполнение.

Вычисления в запросах.

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

  1. Вызовите «Конструктор запросов» для предыдущего запроса.

  2. Удалите третий столбец бланка запроса.

  3. В первом свободном столбце введите имя столбца «Срок обучения:», а затем выражение:

Year(Date()) – [YearEnter]

Если не ввести имя поля и двоеточие, то вычисляемому полю будет присвоено имя «Выражение1». Бланк запроса примет вид:

Поле:

SGroup

FIOS

Срок обучения: Year(Date())-[YearEnter]

Имя таблицы:

Student

Student

Сортировка:

По возрастан

Вывод на экран:

Условие отбора:

Forms![Спи

или:

4. Вызовите форму на выполнение.