Анимация
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

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

: :miiI

Поле.

Сортнрввиа GbflOA Mflatipai

ШЯПЙ -1 etiaart

i ! 1

,Fcii№HII(n«Mnsntl№nlltNob4}taxaidlJ

Рис. 7.12. Параметрический запрос, требующий наличия открытой формы

В любой момент мы можем переключиться из окна Конструктора запросов в режим таблицы или режим SQL. Это очень удобно, так как часто мы знаем, что хотим получить, но никак не можем добиться нужного результата из-за неправильной логики запроса. Используя режим таблицы, мы можем корректировать наш запрос до тех пор, пока не получим нужный результат. Режим SQL полезен в плане изучения синтаксиса, кроме того, что очень удобно, если вы правильно отредактируете запрос, то ваши изменения отразятся в окне Конструктора. Существует определенный набор запросов, которые невозможно построить с помощью Конструктора. О них будет упомянуто ниже.

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

Запрос добавления

Запросы добавления - это те запросы, которые начинаются с ключевого слова INSERT. Мы их обсуждали выше, теперь рассмотрим, как их создавать визуально в Microsoft Access. По умолчанию Конструктор создает запросы добавления с помощью предложения SELECT, то есть использует следующий синтаксис:

INSERT INTO назначение [(поле1[,поле2[, ...]])] SELECT [источник.]поле1[,поле2[, FROM выражение

[IN внешняя база данных]

...]]

Если вы в режиме SQL создадите запрос, который использует синтаксис добавления одной записи, то при повторном открытии запроса он все равно преобразуется в запрос с вышеприведенным синтаксисом. Тем не менее на результаты запроса добавления данное преобразование никак не повлияет. Рассмотрим следующий пример. В режиме SQL был создан следующий запрос:

INSERT INTO Account ( account ) VALUES (109)

После перехода в режим Конструктора и возврат в режим SQL запрос был преобразован к следующему виду:

INSERT INTO Account ( account ) SELECT 109 AS Выражение1;

Тем не менее и тот другой запрос выполняет совершенно одинаковые действия - добавляет запись в таблицу Account, у которой поле Account имеет значение 109.

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



Добавление

Добавление записей в таблицу-Имя таблицы: [account

(* IB 1екущей базе данный В Аругой базе данных: Имя файла: 1

□ К

Отмена

Рис. 7.13. Выбор таблицы для добавления записей

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

После этого Конструктор немного преобразится. Строка Вывод на экране станет называться Добавление, и в ней необходимо указывать поле, в которое вы будете добавлять значения из текущей колонки, как это показано на рис. 7.14.

С£ L 3tliP>iii МП Jiijliiblimrilie

Строка Добавление зэ1/енлпа строку Вывод i-a экран Рис. 7.14.

Запрос - Создание таблицы

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

...INTO <<название новой таблицы>>

Так что если вы научились строить запросы выборки, то можете считать, что вы можете строить запросы для создания таблиц.

Запрос удаления

Выбрав команду Удаление из меню Запросы, вы можете приступить к конструированию запроса удаления. Внешний вид окна Конструктора несколько изменится. Вместо строк Сортировка и Вывод на экран теперь вы увидите только одну - Удаление, которая может принимать два значения, причем без активного участия с вашей стороны. Если выбрать вместо названия конкретного поля звездочку, то строка удаления примет значение "Из". При выборе же конкретного поля строка примет значение "Условие". Причем надо отметить, что если вы напишете условия отбора записей в колонке, где выбрана звездочка, то есть выбраны все поля, то при попытке выполнения запроса появится сообщение о том, что писать эти условия в этой



в" ЗалрсиД : запрос на \

Пеле-Имя Tdunujbi

нЛн.

account

Услошв

Рис. 7.15.

Запрос обновления

Запрос обновления, для создания которого необходимо повторить те же шаги, что и для предыдущих типов запросов, служит, как видно из его названия, для обновления данных в таблице или нескольких таблицах. Если сравнивать внешний вид Конструктора с предыдущим типом запросов, то вы увидите только одно изменение - строка Удаление заменилась строкой Обновление. В эту строку вам необходимо заносить новое значение поля, которое оно приобретет после выполнения запроса.

Перекрестный запрос

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

В качестве примера рассмотрим достаточно тривиальную выборку по трем полям account, key customer и summa.

Итоговый запрос будет содержать следующие данные:

account key customer summa

10000

12300

13000

24000

31000

34000

36000

24000

28000

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

Мы можем выбрать для каждой колонки значение в этой строке из набора, который состоит из слов "Группировка", "Выражение", "Условие" и набора уже знакомых нам функций агрегирования. Выбор значений в этой строке накладывает определенные обязанности по выбору значений в четвертой строке, так как Access контролирует ошибки только при попытке

колонке нельзя. То есть строка Удаления имеет направляющий смысл, никак не влияющий на сам механизм выборки данных (рис. 7.15).



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