
- •А. В. Брешенков, а.М. Губарь
- •Издательство мгту имени н.Э. Баумана
- •Издательство мгту им. Н.Э. Баумана
- •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.5. Поиск записей без подчиненных
В схеме данных таблицы могут быть связаны между собой посредством ключевых полей. При этом одним из типов возможных связей, как уже говорилось, является связь один ко многим. Таким образом, определяются основная и подчиненная таблицы, а записи подчиненной таблицы с помощью внешнего ключа могут ссылаться на записи основной таблицы. В рассматриваемом примере в качестве основной таблицы выступает таблица «Издательства», а подчиненной таблицей является таблица «Книги». Они связаны между собой посредством ключевых полей, которые в обеих таблицах имеют название «Код издательства».
Нередко пользователю БД интересно узнать, какие записи основной таблицы не имеют подчиненных записей в подчиненной таблице. Для нашего случая это может привести к выводу списка издательств, которые до настоящего времени не выпустили ни одной книги.
Схема данных, для которой строится запрос рассматриваемого типа, представлена на рисунке 4.15:
Рис. 4.15. Схема данных для основной и подчиненной таблиц
Для создания запроса на выборку «Записи без подчиненных» надо в форме «Новый запрос» выбрать позицию «Записи без подчиненных», и тогда сформируется следующее окно, приведенное на рисунке 4.16. В этом окне необходимо выбрать таблицу или запрос, у которых есть подчиненная таблица или запрос. В качестве такой таблицы в рассматриваемом случае выбрана таблица «Издательства».
Рис. 4.16. Выбор основной таблицы
Выполнение следующего шага мастера приведет к загрузке окна, приведенного на рисунке 4.17:
Рис. 4.17. Выбор подчиненной таблицы
В этом окне необходимо выбрать подчиненную таблицу. Этот выбор необходим, так как у каждой таблицы могут быть несколько подчиненных таблиц. В данном случае выбрана таблица «Книги». На следующем шаге мастера сформируется окно, представленное на рисунке 4.18:
Рис. 4.18. Выбор связных полей обеих таблиц
В
этом окне необходимо указать поля, по
которым связаны главная и подчиненная
таблицы. Для указания связи необходимо
выделить поле в области полей таблицы
«Издательства», затем выделить
соответствующее поле в области полей
таблицы «Книги» и щелкнуть по кнопке
.
В рассматриваемом случае в качестве
поля для связи в обеих таблицах выбрано
поле «Код издательства».
На следующем шаге мастера сформируется окно, показанное на рисунке 4.19. В этом окне надо выбрать поля основной таблицы, которые будут отображены в создаваемом запросе. В нашем случае выбраны поля «Наименование», «Адрес» и «Сайт».
Рис. 4.19. Выбор отображаемых полей
На следующем шаге мастера загрузится стандартное последнее окно мастера, приведенное на рисунке 4.20.
Рис. 4.20. Окно ввода имени запроса
В этом окне можно ввести имя запроса и открыть его в нужном режиме. В режиме просмотра результатов запроса получим следующую выборку, приведенную на рисунке 4.21:
Рис. 4.21. Вывод записей без подчиненных
Как видно из результатов выполнения запроса, издательства «Машиностроение» и «Энергия» не выпустили ни одной книги.
В режиме SQL данный запрос имеет вид:
SELECT Издательства.Наименование, Издательства.Адрес, Издательства.Сайт
FROM Издательства LEFT JOIN Книги ON Издательства.[Код издательства] = Книги.[Код издательства]
WHERE (((Книги.[Код издательства]) Is Null));
Здесь конструкция Издательства LEFT JOIN Книги ON Издательства.[Код издательства] = Книги.[Код издательства] позволяет выбрать все записи таблицы «Издательства» и только те записи таблицы «Книги», у которых значения полей «Код издательства» совпадают. Это так называемое левое объединение (LEFT JOIN).
Конструкция WHERE (((Книги.[Код издательства]) Is Null)) отсеивает из всех выбранных записей те записи, у которых поле «Код издательства» в таблице «Книги» отсутствует, вернее его значение есть Null.