Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 [ 77 ] 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

Добавление таблицы

Таблицы

ifll Запросы Таблицы н запросы

Запрос1

МЯаЫе ТаЫе1

Добавить

Закрыть

Рис. 7.7.

Так же как в Visual FoxPro, Конструктор запросов состоит из двух частей. В верхней части расположены графические образы таблиц и запросов, данные из которых используются в текущем запросе. По умолчанию Конструктор запросов служит для построения запросов выборки. При этом обязательно учитывайте, что при изменении значений в записях итоговых запросов изменяются данные в исходных таблицах. Нижняя половина представляет собой таблицу, в каждую строку которой мы можем заносить необходимую информацию. Несмотря на то, что научиться пользоваться Конструктором достаточно легко, мы тем не менее позволим себе остановиться на этом моменте более подробно. В первую строку заносится название поля. Сделать это можно несколькими способами:

1. Перетащить графический образ поля из верхней части Конструктора колонку.

2. Дважды щелкнуть мышкой на графическом образе поля.

3. Написать название поля непосредственно в первой строке колонки.

4. Выбрать название поля из раскрывающегося списка, как показано на рис.7.8.

в соответствующую

!---- MBt«

IRqEJun

i ]

1 V.-.rL-t

Рис. 7.8.

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

Очень часто необходимо выводить информацию, упорядочив ее по какому-нибудь из полей. Для этого используется третья строка колонки поля.

С помощью переключателя, расположенного в четвертой строчке, вы определяете, будет ли поле выводиться в выборке запроса или нет. Представьте ситуацию, в которой вам необходимо отсортировать итоговую выборку по некоему полю, но присутствие этого поля в ней не нужно. Тогда, установив сортировку по этому полю и отключив переключатель вывода на экран, вы



iP QCCBeaqjaiyta QHinunl: э рпрас на в ы бр]К1

га Doz0Jicf-iKi(7

>101

Рис. 7.9. Построение критерия с использованием оператора AND. Оба выражения, связанные оператором AND, накладываются на одно и то же поле Account

Выражения, представленные в табл. 7.3, называются совокупными функциями SQL или функциями агрегирования. Чтобы построить запрос с использованием этих функций, необходимо обязательно установить группировку по одному или более полям. Выберите в меню Вид команду Групповые операции, либо соответствующий значок на панели инструментов. После того как вы выполните эту команду, в колонках выбора полей появится строчка "Групповая операция". Теперь из раскрывающегося списка вы можете выбрать одну из функций агрегирования для поля, которое отображается в текущей колонке, либо установить группировку по данному полю. Здесь следует обратить внимание на два последних пунктах раскрывающегося списка: Выражение и Условие. Если вы выберете значение Условие, то возникнет необходимость отключить вывод на экран этого поля, в противном случае вы получите сообщение от Access, в котором вас будут просить об этом же. Основное назначение этого пункта - занести критерий, который вы укажете в этой колонке, в предложение WHERE, так как если вы пишете критерий для поля, по которому происходит группировка, то критерий заносится в предложении HAVING.

Таблица 7.3. Функции агрегирования в MS Access

Имя функции

Операции

Avg()

Среднее арифметическое значений

Count()

Количество записей в наборе

First()

Значение первой записи в наборе

Last()

Значение последней записи в наборе

Min()

Минимальное значение в наборе

Max()

Максимальное значение в наборе

Sum()

Сумма всех записей

StDev()

Стандартное отклонение

StDevP()

Стандартное отклонение смещенное

Var()

Дисперсия

VarP()

Дисперсия смещенная

Иногда бывает недостаточно использовать только функцию агрегирования. Тогда можно использовать выражения, созданные с помощью функций агрегирования для вывода на экран, но при этом в строку Групповые Операции необходимо вынести значение "Выражение". На рис. 7.10

добьетесь необходимой функциональности.

Одним из главных элементов запросов, если не самым главным, является условие выборки или критерии, которые мы накладываем на исходные таблицы. Ведь совершенно нерационально выводить все записи из таблицы, где их десятки тысяч. Поэтому активно используйте критерии для ограничения числа записей. При этом, если в одной колонке вы напишете критерии в строчках "условия отбора" и "или", то они свяжутся по условию OR. Если же вам необходимо установить для одного и того же поля критерий по AND, то вы должны либо непосредственно набрать условие с использованием этого оператора, либо использовать еще одну колонку для этого поля, но с выключенным переключателем "Вывод на экран", как это показано на рис. 7.9.



вз ЗалрасЗ : запрос на выборку (локальный)

key customer I kei) auto date write selled

summa

Поле: Имя таблицы: Групповая операция: Сортировка: Вывод на экран: Условие отбора:

account

Средняя сделка: Sum[[summa])/Cc

account

Группировку-

►г

Рис. 7.10.

Чтобы сделать запрос более актуальным, то есть иметь возможность менять содержимое выводимых данных в зависимости от изменяющихся потребностей в получении данных, вы можете использовать параметрические запросы. Параметры запроса устанавливаются с помощью специального диалогового окна, представленного на рис. 7.11. При этом помните, что все выражения тоже будут считаться параметрами, если Access не имеет возможности преобразовать их.

Параметры запроса

Парагугетр

I Типданныи

Custpar

Текстовый iJ

Отмена

Рис. 7.11.

На рис. 7.12 представлен запрос, который должен вызываться из формы IKNOWWHATIWANTIWANTITNOW и выводить данные по счетам, которые являются текущими для данной формы. В случае запуска этого запроса в момент, когда эта форма не является активной, условие критерия

Forms! [IknowwhatIwantIwantitnow]. [account]

превратится в параметр, и перед вашими пользователями появится диалог, в котором будет предложено ввести значение данного параметра. В то же время параметр SKOLKO зарегистрирован как параметр и всегда будет считаться параметром, даже при наличии поля с одноименным названием в какой-нибудь из форм, из которой будет вызываться запрос.

приводится пример построения такого выражения. Критерий, указанный для колонки, которая будет выводить выражение, также попадет в предложение HAVING.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 [ 77 ] 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146