- •Лекция 4 Запросы по нескольким таблицам и перекрестные запросы
- •Соединение таблиц для создания многотабличного запроса
- •Создание внутреннего соединения по одному полю
- •Создание запросов на выборку данных из таблиц с косвенными связями
- •Создание внутреннего соединения по нескольким полям
- •Использование полей подстановок
- •Добавление списка, задающего значение внешнего ключа, при помощи Мастера подстановок
- •Добавление списка постоянных значений к полю таблицы
- •Внешнее, рекурсивное соединения и соединение по отношению
- •Создание рекурсивного соединения
- •Создание соединения по отношению
- •Использование запросов для обновления таблиц
- •Требования к запросам на обновление
- •Определение формата вывода данных
- •Использование строки, помеченной звездочкой, для добавления всех полей в запрос
- •Использование окна свойств для добавления всех полей в запрос
- •Вычисления на всем диапазоне записей таблицы
- •Создание перекрестных запросов
- •Использование фиксированных заголовков столбцов в перекрестных запросах
Использование окна свойств для добавления всех полей в запрос
Обычно для обновления в формах или отчетах доступны только те поля, чьи имена указаны в бланке запроса. Все другие поля исключены из результирующего множества. Однако чтобы изменять в форме или отчете данные всех полей таблицы, используемой в запросе, и не включать их имена в запрос, требуется присвоить значение Да свойству запроса "Вывод всех полей":
Создайте новый запрос и добавьте в него требуемые таблицы.
Нажмите на панели инструментов кнопку "Свойства".
Установите курсор в поле свойства "Вывод всех полей" и измените значение на Да.
Если свойство "Уникальные значения" имеет значение Да, то обновление полей не допускается.
Если в диалоговом окне "Параметры" сбросить флажок "Вывод всех полей", то в инструкцию SQL после списка выбранных полей будет добавлена звездочка, которая определяет вывод всех полей заданных таблиц:
SELECT DISTINCTROW Клиенты.Название,
Типы.Категория, * FROM Клиенты, Типы;
Следует отметить, что при выводе всех полей таблицы выполнение запроса происходит медленнее, особенно если в результирующем множестве содержится большое количество записей.
Вычисления на множестве записей
Access позволяет практически мгновенно обобщить информацию, содержащуюся в записях таблиц. В этих системах можно получить ответы на типичные вопросы, такие, например, как "Какова сумма продаж на заданный день?" или "Как изменилась сумма продаж за текущий месяц по сравнению с суммой продаж за тот же месяц прошлого года?" Чтобы выполнить расчеты на основе информации таблиц, необходимо создать запрос, в котором для вычислений используются статистические функции Access SQL.
Использование статистических функций языка SQL
При обобщении данных, которые содержатся в полях таблиц, включенных в запрос, используются статистические функции SQL. Эти функции называются статистическими, потому что они выполняют сбор статистики об информации в записях. Имеющихся статистических функций SQL обычно достаточно для решения большинства задач. Однако можно самостоятельно написать функцию Access VBA, которая выполняла бы более сложные статистические, научные или инженерные расчеты над данными.
Функция |
Описание |
Типы полей |
Avg() |
Вычисляет арифметическое среднее набора чисел, содержащихся в указанном поле запроса |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
Count () |
Вычисляет количество непустых записей, возвращаемых запросом |
Все типы полей |
First () |
Возвращает значение поля из первой записи результирующего набора |
Все типы полей |
Last () |
Возвращает значение поля из последней записи результирующего набора |
Все типы полей |
Мах () |
Возвращает максимальное из набора значений, содержащихся в указанном поле |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
Min () |
Возвращает минимальное из набора значений, содержащихся в указанном поле |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
StDev() StDevP() |
Возвращают смещенное и несмещенное значение среднеквадратичного отклонения, вычисляемого по набору значений содержащихся в указанном поле |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
Sum () |
Возвращает сумму набора значений, содержащихся в заданном поле |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
Var () VarP() |
Возвращают значение смещенной и несмещенной дисперсии, вычисляемой по набору значений, содержащихся в указанном поле |
Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE |
Статистические функции SQL можно задать в ячейке строки "Групповая операция" бланка запроса. Эта строка выводится, если нажать на панели инструментов кнопку "Групповые операции" либо выбрать команду "Вид, Групповые операции".