
- •А. В. Брешенков, а.М. Губарь
- •Издательство мгту имени н.Э. Баумана
- •Издательство мгту им. Н.Э. Баумана
- •1. Интегрированная среда Access. Построение баз данных с помощью шаблонов 9
- •1. Интегрированная среда Access. Построение баз данных с помощью шаблонов
- •1.1. Введение
- •1.2. Загрузка Access
- •1.3. Интегрированная среда Access
- •1.4. Создание баз данных с помощью шаблонов
- •Контрольные вопросы
- •2. Проектирование таблиц в среде Access
- •2.1. Введение
- •2.2. Создание таблиц путем ввода данных
- •2.3. Создание таблиц с помощью мастера
- •2.4. Создание таблиц с помощью конструктора
- •2.4.1. Описание имен полей
- •2.4.2. Назначение типов полей
- •2.4.3. Назначение свойств полей
- •2.5. Связывание таблиц на схеме данных
- •2.5.1. Введение
- •2.5.2. Связь один к одному
- •2.5.3. Связь один ко многим
- •2.5.4. Связь многие ко многим
- •Контрольные вопросы
- •3. Проектирование запросов с помощью конструктора
- •3.1. Введение
- •3.2. Проектирование запросов на выборку
- •3.3. Проектирование перекрестных запросов
- •3.4. Проектирование запроса на создание таблицы
- •3.5. Проектирование запроса на добавление
- •3.6. Проектирование запроса на обновление
- •3.7. Проектирование запроса на удаление
- •3.8. Проектирование запросов на основе нескольких таблиц
- •Контрольные вопросы
- •4. Проектирование запросов в среде Access с помощью мастеров
- •4.1 .Введение
- •4.2. Формирование простого запроса
- •4.3. Формирование перекрестного запроса
- •4.4. Вывод повторяющихся записей
- •4.5. Поиск записей без подчиненных
- •Контрольные вопросы
- •5. Проектирование форм в среде Access с помощью конструктора
- •5.1. Введение
- •5.2. Создание формы посредством конструктора
- •5.3. Редактирование формы посредством конструктора
- •5.4. Свойства формы и ее элементов
- •5.4.1. Введение
- •5.4.2. Вкладка «Макет»
- •5.4.3. Вкладка «Данные»
- •5.4.4. Вкладка «События»
- •5.4.5. Вкладка «Другие»
- •Контрольные вопросы
- •6. Проектирование форм в среде Access с помощью мастеров
- •6.1. Введение
- •6.2. Проектирование форм с помощью мастера форм
- •6.3. Автоформа в столбец
- •6.4. Автоформа ленточная
- •6.5. Автоформа табличная
- •6.6. Автоформа сводная таблица *
- •6.7. Автоформа Сводная диаграмма *
- •6.8. Диаграмма
- •6.9. Сводная таблица *
- •6.10. Создание формы посредством инструмента «Новый объект»
- •6.11. Диспетчер кнопочных форм
- •Контрольные вопросы
- •Проектирование отчетов в среде Access с помощью конструктора
- •7.1. Введение
- •7.2. Запуск конструктора отчетов
- •Формирование в отчете полей с данными
- •7.4. Проектирование отчетов с группировкой по полям
- •Использование панели элементов в конструкторе отчетов
- •7.6. Внедрение в отчет подчиненной формы или отчета
- •Контрольные вопросы
- •Проектирование отчетов в среде Access с помощью мастеров
- •8.1. Введение
- •Мастер отчетов
- •8.3. Автоотчет в столбец
- •8.4. Автоотчет ленточный
- •8.5. Мастер диаграмм
- •8.6. Мастер наклеек
- •Контрольные вопросы
- •9. Использование макросов в среде Access
- •9.1. Введение
- •9.2. Создание макроса
- •9.3. Примеры макрокоманд
- •9.3.1. Макрокоманда «ВыполнитьКоманду»
- •9.3.2. Макрокоманда «ЗадатьЗначение»
- •9.3.3. Макрокоманда «ЗапускМакроса»
- •9.3.4. Макрокоманда «ЗапускПриложения»
- •9.3.5. Макрокоманда «КопироватьОбъект»
- •9.3.6. Макрокоманда «ОткрытьЗапрос»
- •9.3.7. Макрокоманда «ПреобразоватьБазуДанных»
- •9.4. Связывание макросов с событиями
- •9.5. Создание макросов с условиями
- •Контрольные вопросы
- •Список литературы
4.4. Вывод повторяющихся записей
Нередко бывает полезно просмотреть поля или записи таблицы, которые встречаются многократно. В таблицах с ключевыми полями, имеющими уникальные значения, повторяющихся записей в принципе не может быть. Поэтому и строить запрос на выборку повторяющихся записей для таких таблиц не имеет смысла. Для таблиц такого рода можно построить запрос на выборку повторяющихся значений отдельных полей. В некоторых таблицах могут быть не задействованы ключевые поля. Для таких таблиц может представлять интерес выборка повторяющихся записей.
Для создания запроса на выборку повторяющихся записей надо в форме «Новый запрос» выбрать позицию «Повторяющиеся записи», после чего сформируется следующее окно (рисунок 4.10):
Рис. 4.10. Окно выбора объекта с повторяющимися записями
В этом окне необходимо выбрать таблицу или запрос, в которых требуется найти записи с повторяющимися значениями. После выбора объекта и перехода к следующему шагу мастера сформируется окно, представленное на рисунке 4.11.
В этом окне необходимо выбрать поля, для которых требуется найти повторения. Если выбрать все поля, то повторяющихся записей не будет, так как среди этих полей есть поле «Код книги», имеющее уникальные значения. В данном случае для анализа выбраны поля «Автор» и «Название».
Рис. 4.11. Окно выбора полей с повторяющимися значениями
На следующем шаге мастера отобразится окно (рисунок 4.12):
Рис. 4.12. Окно выбора дополнительных полей
В этом окне необходимо выбрать поля, которые будут при выполнении запроса отображаться вместе с повторяющимися значениями. В рассматриваемом случае в качестве такого поля выбрано поле «Цена».
На следующем шаге мастера отобразится его последнее, стандартное окно (рисунок 4.13):
Рис. 4.13. Окно задания имени запроса
В этом окне можно изменить предлагаемое имя запроса. Запрос можно загрузить в режиме конструктора или просмотреть результаты его выполнения. В режиме просмотра выборка по сформированному запросу выглядит следующим образом (рисунок 4.14):
Рис. 4.14. Вывод повторяющихся записей по двум полям
Как видно из этого рисунка, повторяются две пары полей «Автор-Название». В качестве дополнительного поля здесь же отображено поле «Цена», которое имеет разные значения.
В режиме SQL сформированный запрос имеет вид:
SELECT Книги.Автор, Книги.Название, Книги.Цена
FROM Книги
WHERE (((Книги.Автор) In (SELECT [Автор] FROM [Книги] As Tmp GROUP BY [Автор],[Название] HAVING Count(*)>1 And [Название] = [Книги].[Название])))
ORDER BY Книги.Автор, Книги.Название;
Здесь с помощью Конструкции WHERE выбираются повторяющиеся записи – выбираются те значения полей Книги.Автор, которые входят (In) в результаты подчиненного запроса SELECT [Автор] FROM [Книги] As Tmp GROUP BY [Автор],[Название] HAVING Count(*)>1 And [Название] = [Книги].[Название].
В этом подчиненном запросе с помощью конструкции GROUP BY [Автор],[Название] выполняется группировка по полям «Автор» и «Название».
С помощью конструкции HAVING Count(*)>1 And [Название] = [Книги].[Название] выводятся только те группы, в которых количество записей с одинаковым значением поля [Книги].[Название] больше 1.
Конструкция HAVING используется совместно с конструкцией GROUP BY и сообщает, какие группы должны быть включены в результирующий запрос.