Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Часть 4.doc
Скачиваний:
30
Добавлен:
28.03.2015
Размер:
856.06 Кб
Скачать

Объединение в запросе двух копий одной таблицы (самообъединение)

Рассмотрим пример: допустим, мы хотим создать запрос, отображающий имя начальника (он тоже сотрудник) вместо кода.

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

При появлении копии её имя получается автоматически. Возможно более осмысленное название путем изменения свойства «Псевдоним» Alias (это никак не влияет на базовую таблицу).

Теперь для построения запроса «Подчиненные» можно из «Сотрудники» взять имя, фамилию, должность, а из «Сотрудники_1» взять фамилию (и имя) начальника. Отображение можно сделать более понятным, если в свойстве «Подпись» вместо «Фамилия» задать «Начальник»

Использование в запросе автоподстановки для автоматического ввода данных

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

Условия, при которых возможна автоподстановка:

  • В запрос должно быть включено несколько таблиц, связанных отношением «один ко многим». Может быть, не должны быть заданы условия целостности данных.

  • Со стороны «один» должен быть уникальный индекс (ключ или «Индексированное поле» со свойствами «Совпадение не допускаются» - «Да»).

  • В запрос берется поле со стороны «многие».

  • Значение, введенное в связанное поле на стороне «многие» уже должно присутствовать на стороне «один».

Создание параметризованных запросов

Что такое запрос с параметрами уже говорилось при рассмотрении типов запросов.

Запрос с параметрами - это такой запрос, при запуске которого открывается диалоговое окно с приглашением ввести условие отбора. Условий (и окон) может быть несколько.

Рассмотрим принцип создания запроса с параметрами с одним условием:

Запрос создается в конструкторе запросов обычным способом, но в строке бланка с названием «Условия отбора», перед теми подписями, где должна быть поставлено конкретное значение параметра, нужно написать текст приглашения для диалогового окна в квадратных скобках.

Если речь идет о диапазоне дат (что также типично для таких запросов), то условие отбора может выглядеть:

Between [Введите начальную дату:] And

[Введите конечную дату:]

При выполнении запроса (допустим для получения отчета) появится диалоговое окно:

На приглашение существует ограничение 50 символов.

Это окно является частным случаем так называемых всплывающих форм. Оно появляется поверх других окон, забирает фокус ввода на себя и не дает возможность активизировать что-либо другое, пока не нажаты одна из клавиш «ОК» или «ОТМЕНА». Такая форма (диалог) называется МОДАЛЬНОЙ.

Если параметров (и окон) несколько, то они появляются в порядке следования в бланке в конструкторе. Если нужно изменить этот порядок и сообщить тип данных, то необходимо выбрать пункт меню Запрос  Параметры.

Соседние файлы в папке БД2012