
- •Часть 2
- •Часть 2
- •Введение
- •Глава 1. Базы данных и системы управления базами данных
- •1.1. Данные и эвм
- •1.2. Концепция баз данных
- •1.3. Архитектура субд
- •1.4. Модели данных
- •1.5. Реляционные базы данных
- •1.6. Системы управления базами данных Access
- •1.7. Объекты Access
- •1.8. Запуск и завершение работы Access
- •1.9. Структура окна Access
- •1.10. Открытие и закрытие бд
- •1.11. Получение справки в Access
- •1.12. Учебные базы данных
- •Глава 2. Построение базы данных
- •2.1. Основные принципы проектирования бд
- •2.2. Создание новой базы данных
- •2.3. Создание таблиц
- •2.3.1. Режим таблицы
- •2.3.2. Режим конструктора таблицы
- •Задание свойства поля
- •Создание ключевого поля
- •Подстановка данных
- •Мастер подстановок
- •Установка свойств таблицы
- •2.3.3. Мастер таблиц
- •2.3.4 Импорт таблиц
- •2.3.5. Связывание таблиц
- •2.4. Сохранение таблицы
- •2.5. Определение связей между таблицами
- •2.5.1. Типы связей между таблицами
- •1. Связь типа «один-ко-многим»
- •2. Связь типа «один-к-одному»
- •3. Связь типа «многие-ко-многим»
- •2.5.2. Создание связей
- •2.6. Модификация бд
- •2.6.1. Операции над таблицами
- •Копирование таблицы
- •Переименование таблицы
- •Удаление таблицы
- •Экспорт таблицы
- •2.6.2 Модификация структуры таблицы
- •Вставка полей
- •Удаление полей
- •Перемещение полей
- •Копирование полей
- •Изменение типа данных и размера поля
- •Глава 3. Работа с таблицей
- •3.1. Ввод данных
- •3.2. Перемещение по таблице
- •3.3. Редактирование данных в таблице
- •Выделение данных в таблице
- •Отмена изменений
- •Использование буфера обмена Windows
- •3.4. Настройка внешнего вида таблицы
- •3.5. Поиск и замена данных
- •3.6. Сортировка и фильтрация данных
- •Глава 4. Выражения в access
- •4.1. Операторы
- •4.1.1. Арифметические операторы
- •4.1.2. Операторы слияния строк (конкатенации)
- •4.1.3. Операторы сравнения
- •Оператор Is
- •Оператор In
- •Оператор Between
- •Оператор Like
- •4.1.4. Логические операторы
- •4.1.5. Операторы идентификации. Идентификаторы
- •Оператор "!"
- •Оператор "."
- •1 В sql и vba для этой цели обычно используется оператор ".".
- •4.2. Константы
- •4.3. Функции
- •4.3.1. Функции для работы с датами
- •4.3.2. Функции для работы со строками
- •4.3.3. Математические функции
- •4.3.4. Статистические функции
- •4.3.5. Статистические функции по подмножеству
- •4.4. Построитель выражений
- •Глава 5. Создание запросов
- •5.1. Общая характеристика запросов
- •5.1.1. Типы запросов в Access
- •5.1.2. Режимы окна запроса
- •5.1.3. Создание запроса
- •Использование мастера Простой запрос
- •Использование режима Конструктор
- •5.2. Работа в окне конструктора запросов
- •5.2.1. Добавление или удаление таблицы/запроса
- •5.2.2. Включение полей в бланк запроса
- •5.2.3. Добавление столбца в бланк запроса
- •5.2.4. Удаление столбца из бланка запроса
- •5.2.5. Перемещение поля в бланке запроса
- •5.2.6. Добавление вычисляемого поля
- •5.2.7. Изменение имени поля в запросе
- •5.2.8. Отображение/скрытие поля в результатах запроса
- •5.2.9. Изменение ширины столбца в бланке запроса
- •5.2.10. Сортировка результатов запроса
- •5.2.11. Вставка или удаление строки условий отбора
- •5.2.12. Установка свойств запроса
- •5.2.13. Установка свойств полей запроса
- •5.3.2. Шаблоны общего вида. Оператор Like
- •5.3.3. Диапазон значений. Операторы And и Between
- •5.3.4. Список значений. Операторы Or и In
- •5.3.5. Отрицание образца. Оператор not
- •5.3.6. Отбор записей с Null значениями и пустыми строками
- •5.3.7. Использование нескольких строк условий
- •5.3.8. Использование вычисляемых полей
- •5.3.9. Использование ссылки на имя поля
- •5.3.10. Использование ссылки на элемент управления
- •5.3.11. Использование параметров в условиях отбора
- •5.3.12 Использование в условиях отбора подчиненного запроса
- •Глава 6. Отчеты
- •6.1. Основные понятия
- •6.2. Создание отчета
- •6.2.1. Создание отчета с помощью Мастера отчетов
- •6.2.2. Создание отчета с помощью Конструктора
- •6.3. Сортировка и группирование
- •6.4. Режимы окна отчета
- •6.5. Печать отчета
- •Глава 7. Работа с внешними данными
- •7.1. Access и внешние данные
- •7.1.1. Типы внешних данных
- •7.1.2. Работа с внешними данными
- •7.2. Импортирование или связывание данных
- •7.3. Связь внешних данных
- •7.4. Импортирование внешних данных
- •7.5. Данные в неподдерживаемых программах
- •7.6. Автоматизация операции импортирования
- •7.7. Связывание внешних данных
- •7.8. Типы субд
- •7.9. Связь с таблицами других баз данных Access
- •7.10. Связь с таблицами бд dBase и FoxPro
- •7.11. Индексы в Access и dBase/FoxPro
- •7.12. Установка связи с таблицами xBase
- •7.14. Индексные файлы Access и Paradox
- •7.15. Связывание с таблицами других форматов
- •7.16. Разделение базы данных Access на две связанные базы данных
- •7.17. Работа со связанными таблицами
- •7.18. Установка режимов просмотра
- •7.19. Установка отношений
- •7.20. Установка связей между внешними таблицами
- •7.21. Использование внешних таблиц в запросах
- •7.22. Изменение имени таблицы
- •7.23. Оптимизация связанных таблиц
- •7.24. Просмотр или изменение информации о связанных таблицах
- •7.25. Импортирование внешних данных
- •7.26. Импортирование других объектов Access
- •7.27. Импортирование таблиц из других бд
- •7.28. Импортирование данных электронной таблицы
- •7.29. Импортирование из файлов текстовых редакторов
- •7.30. Текстовые файлы с разделителями
- •7.31. Текстовые файлы с полями фиксированной ширины
- •7.32. Импортирование текстовых файлов с разделителями
- •7.33. Импортирование текстовых файлов с фиксированной шириной полей
- •7.34. Использование окна спецификации импорта
- •7.35. Импортирование html-таблиц
- •7.36. Ошибки, возникающие при импортировании данных
- •7.37. Таблица ошибок импортирования
- •7.38. Экспорт данных
- •Глава 8. Создание отчетов для презентаций и печать
- •8.1. Технология wysiwyg
- •8.2. Улучшение элементов управления, содержащих текст и надписей
- •8.3. Изменение размера и типа шрифта текста
- •8.4. Добавление тени к тексту
- •8.5. Отображение свойств надписи или поля
- •8.6. Использование многострочных полей
- •8.7. Отображение полей memo в многострочных элементах управления типа Поле (Text Box)
- •8.8. Добавление новых элементов управления
- •8.9. Отображение значений с помощью переключателей и групп переключателей
- •8.10. Создание группы переключателей
- •8.11. Создание группы переключателей с вычисляемым элементом управления
- •Глава 9. Средства защиты данных
- •9.1. Общие свойства
- •9. 2. Рабочие группы
- •9.2.1. Изменение файла рабочей группы
- •9.3. Ограничение доступа в Microsoft Access
- •9.4. Учетные записи
- •9. 5. Изменение прав владения
- •9.6. Присвоение и удаление прав доступа
- •9.7. Шифрование бд
- •3.1. Выполнение задания
- •3.1.1. Разработка структуры бд
- •3.1.2. Создание таблиц
- •3.1.7. Завершение работы с бд
- •3.2. Пример выполнения лабораторной работы
- •Характеристики таблицы-объекта сотрудник:
- •Характеристики таблицы-объекта состав семьи:
- •Характеристики таблицы-объекта штатное расписание:
- •Описание работы
- •Заполнение таблиц
- •Выполнить запрос на выборку
- •Создать параметрический запрос
- •Создание запрос, используемый для создания сложного отчета
- •II Создать сложный отчет, содержащий:
- •Приложение б
- •Литература
- •Часть 2
5.3.12 Использование в условиях отбора подчиненного запроса
Иногда условие отбора использует значение, которое можно получить в результате выполнения другого запроса, называемого подчиненным. В этом случае можно поступить следующим образом:
1. Создать подчиненный запрос.
2. Перейти в режим SQL и скопировать инструкцию SQL, описывающую подчиненный запрос в буфер обмена.
3. Создать основной запрос и перейти в нужную ячейку строки Условие отбора.
4. Ввести требуемый условный оператор (например, > или <), а затем вставить содержимое буфера обмена, заключив его в круглые скобки.
Отметим, что подчиненный запрос должен иметь в качестве результата значение, т.е. одну запись, содержащую одно поле. Подчиненный запрос может использоваться в выражении, определяющем вычисляемое поле.
;Пример 5.12. Пусть нужно найти студентов, которые не старше студента 2311 группы Иванова, причем известно, что у него в группе нет однофамильцев. В этом случае можно создать подчиненный запрос (см. рис. 5.6) к таблице Студенты, результат которого — дата рождения Иванова (27 марта 72 года).
Соответствующая инструкция SQL SELECT выглядит так:
SELECT Студенты.[Дата рождения] FROM Студенты WHERE
(((Студенты.Группа)=«2311») AND ((Студенты.Фамилия) =«иванов»));
Рис. 5.6. Подчиненный запрос, дающий дату рождения
Она содержит следующую информацию:
список выбираемых полей (находится после ключевого слова SELECT);
таблицу, используемую в запросе (указывается в предложении FROM);
условие отбора записей (указывается в предложении WHERE).
Эту инструкцию нужно скопировать в буфер обмена и создать еще один запрос к таблице Студенты, содержащий поля Фамилия, Имя и Дата рождения. В поле Дата рождения следует вставить из буфера обмена сохраненную инструкцию SELECT, заключив ее в круглые скобки и поставив в начале условия знак >=.
Условие отбора в поле Дата рождения будет выглядеть так:
>= (SELECT Студенты.[Дата рождения] FROM Студенты WHERE
(((Студенты. Группа)="2311") AND ((Студенты. Фамилия) ="иванов"));
В результате выполнения этого запроса будет получен требуемый список студентов (рис. 5.8). Отметим, что этот запрос даст правильный результат лишь в том случае, если у Иванова нет однофамильцев. Если это условие не выполнено, то необходимо использовать для отбора даты рождения не фамилию, а код студента.
Рис. 5.7. Основной запрос, использующий инструкцию SQL
Глава 6. Отчеты
6.1. Основные понятия
Отчеты — форма представления информации для использования и распространения. Отчеты — итоговые документы для лиц, которым была предназначена создаваемая БД. Если форма — документ разработчика и лиц, работающих с информацией в БД, то отчеты — инструмент «хозяев» БД, позволяющий им в нужный момент иметь информацию для личного использования или передачи другим лицам. Отчет нужен для подведения итогов деятельности за период подсчетов итоговых сумм и т.д. Структура отчета (рисунок 7.1) напоминает структуру формы за одним существенным исключением — возможностью добавления нескольких пар новых разделов, если возникает потребность группировки данных по каким-либо признакам.
Рис. 6.1. Структура отчета
Возможность группирования данных, - это, пожалуй, главное отличие создания отчета от создания формы. Как реализовать группирование, мы подробно рассмотрим ниже, а пока кратко рассмотрим саму идею группирования и ее влияние на структуру разделов. Предположим, что мы строим отчет по таблице, описывающей реализацию товаров различным клиентам. Можно составить отчет по разным «срезам» такой таблицы. Например, составить отчет, характеризующий заказы каждого клиента. В этом случае основа группирования данных — клиенты. Все заказы разбиваются на группы, относящиеся к одному клиенту.
Другой вариант — рассмотреть, как реализовывались товары различных видов. В этом случае основа группирования — отдельный товар, а все данные о заказах можно разбить на группы, относящиеся к конкретному товару. Группы могут быть вложенными. Например, в первом случае, внутри группирования по клиентам, можно сгруппировать заказы каждого клиента по отдельным товарам. Каждое группирование сопровождается, как правило, появлением двух разделов — заголовка группы и примечания группы. В заголовке обычно указывается информация о поле — источнике группирования (клиенты, товары) и др. В области примечания можно подвести итоги группирования — число заказов каждого клиента, сумму стоимости всех заказов каждого клиента, число заказов каждого товара и т. д.
Если группы вложенные, можно подвести промежуточные итоги, т. е. число заказов конкретного товара, сделанных клиентом. Общее число вложений групп — до 10. Свойства разделов отчета совпадают со свойствами разделов формы, хотя у форм и отчетов существуют различные режимы. Напомним, что форма могла находиться в трех режимах: конструктора, работы (формы) и предварительного просмотра.
У отчета тоже может быть три режима, причем два из них такие же: режим предварительного просмотра и режим конструктора. Кроме того, отчет может находиться в режиме образца. Этот режим похож на режим предварительного просмотра, но отличается от него тем, что в режиме образца показывается не весь отчет, а только его часть, с целью оценки того, как будет выглядеть весь отчет. Режим, подобный режиму формы, естественно отсутствует, так как с отчетом не работают как с формой или запросом.
Некоторые разделы отчета, такие как колонтитулы и примечания, имеют дополнительные свойства, более тонкие, чем у аналогичных разделов форм. Так, заголовок отчета может быть напечатан отдельно на первой странице, без колонтитулов.
Надо отметить, что в отчете дублируются и многие другие свойства различных объектов, изучавшихся нами в формах. В отчетах, как и в формах, размещаются элементы управления: поля, надписи и т. д. Как и в формах, они могут быть связанными, свободными и вычисляемыми в зависимости от источника информации, реализуемой в элементе управления.