Можно ли создать в форме вычисляемое поле. Создание вычисляемого поля в форме. Вставка графического объекта в форму

В Microsoft SQL Server в таблицах можно использовать столбцы с вычисляемым значением, они так и называются «Вычисляемые столбцы» . Сейчас я расскажу Вам о том, для чего такие столбцы нужны, какие у них особенности и, кончено же, как их создавать.

Вычисляемые столбцы в таблицах

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

Вычисляемые столбцы нужны для того, чтобы было проще и надежней получить результат каких-то постоянных вычислений. Например, при обращении к таблице, Вы всегда в SQL запросе применяете какую-нибудь формулу (один столбец перемножаете с другим или что-то в этом роде, хотя формула может быть и сложней ), так вот, если в таблице определить вычисляемый столбец, указав в его определении нужную формулу, Вам больше не нужно будет каждый раз писать эту формулу в SQL запросе в инструкции SELECT. Вам достаточно обратиться к определенному столбцу (вычисляемому столбцу ), который автоматически при выводе значений применяет эту формулу. При этом этот столбец можно использовать в запросах также как обычный столбец, например, в секциях WHEHE (в условии ) или в ORDER BY (в сортировке ).

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

Создание вычисляемого столбца при создании новой таблицы в Microsoft SQL Server

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

--Создание таблицы с вычисляемым столбцом CREATE TABLE TestTable ( IDENTITY(1,1) NOT NULL, (100) NOT NULL, NULL, NULL, AS ( * ) PERSISTED --Вычисляемый столбец) --Добавление данных в таблицу INSERT INTO TestTable VALUES ("Портфель", 1, 500), ("Карандаш", 5, 20), ("Тетрадь", 10, 50) --Выборка данных SELECT * FROM TestTable

Добавление вычисляемого столбца в существующую таблицу в Microsoft SQL Server

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

Добавление вычисляемого столбца в таблицу ALTER TABLE TestTable ADD SummaALL AS ( * * 1.7); --Выборка данных SELECT * FROM TestTable


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


Затем указать название столбца и тип данных (тип данных временно ), а для того чтобы определить вычисляемый столбец, в «Свойствах столбца » нужно найти раздел «Спецификация вычисляемого столбца » и в поле «Формула » указать соответствующую формулу.

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

Удаление вычисляемого столбца из таблицы

В случае, если Вам больше не нужен вычисляемый столбец, то его можно удалить, делается это также, как и удаление обычного столбца.

ALTER TABLE TestTable DROP COLUMN SummaALL;


На этом мой рассказ про вычисляемые столбцы закончен, в своей книге «Путь программиста T-SQL. Самоучитель по языку Transact-SQL » я подробно рассказываю про все возможности языка T-SQL, удачи!

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

Чтобы добавить к отчету вычисляемое поле "Сумма":

  1. Откройте отчет "Товары на складе" в режиме Конструктора.
  2. На панели элементов нажмите кнопку Надпись (Label) и поместите новую надпись справа от надписи "На складе" (Units in Stock) в разделе верхнего колонтитула. Введите в качестве текста надписи слово "Сумма" (Sum).
  3. Чтобы создать вычисляемое поле "Сумма" (Sum), нажмите кнопку Поле (Text Box) на панели элементов и добавьте текстовое поле справа от текстового поля "НаСкладе" (UnitsInStock) в разделе данных. Удалите метку нового текстового поля.
  4. Щелкните внутри текстового поля и введите в качестве его значения выражение:

    = [НаСкладе]* [Цена] (= * ).

    Откройте окно свойств поля, дважды щелкнув по нему, и на вкладке Макет (Format) в поле со списком свойства Формат поля (Format) выберите значение Денежный (Currency).

Замечание

Ввести выражение в текстовое поле можно несколькими способами: выделите его и нажмите комбинацию клавиш +, чтобы войти в режим редактирования содержимого поля, или сделайте двойной щелчок по полю для отображения диалогового окна Свойства (Properties), а затем введите выражение как значение свойства Данные (Source).

Рис. 6.27.

  1. Повторите шаги 3 и 4 для того, чтобы создать текстовое поле в разделе примечаний группы "Категория" (Category), но в качестве выражения для вычисления промежуточного значения следует ввести: =Sum([НаСкладе] * [Цена]) (=Sum( * )). Нажмите кнопку Полужирный (Bold) на панели форматирования, чтобы установить полужирный шрифт для текста в новом поле. Откройте диалоговое окно Свойства (Properties) и раскройте в нем вкладку Другие (Other), в поле Имя (Name) введите имя текстового поля "Сумма" (Sum). Затем раскройте вкладку Макет (Format) и в поле со списком свойства Формат поля (Format) выберите значение Денежный (Currency).
  2. Поскольку ширина области данных нашего отчета увеличилась, уменьшите ширину полей страницы, чтобы все поля поместились на одной странице. Для этого выберите команду Файл, Параметры страницы (File, Page Setup) и задайте вместо ширины левого и правого полей, заданных по умолчанию, значение 10 мм (см. разд. "Просмотр и печать отчетов" в этой главе).
  3. Нажмите кнопку Вид (View) на панели инструментов Конструктор отчетов (Report Design), чтобы оценить результаты своей работы. Отчет будет выглядеть так, как показано на рис. 6.27. К прежним данным добавился крайний правый столбец со значениями стоимости каждого товара в имеющемся количестве на складе и промежуточных итоговых сумм по стоимости товаров для каждой категории.

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

Вычисляемое поле может присутствовать как в формах, так и в отчетах. При этом в форме оно создается в области данных с помощью элемента управления «Поле». Для этого:

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

2. На панели элементов выберите элемент Поле и поместите его в необходимое место области данных.

3. Сделайте выравнивание надписи поля и самого поля по своему усмотрению.

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

5. Щелчком правой кнопки мыши выполните вызов контекстного меню для самого поля и выберите пункт Свойства.

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

· Двойной щелчок по имени поля формы (средняя область построителя) поместит его в создаваемую формулу;

· Щелчок мыши по арифметическому знаку позволит Вам также поместить его в создаваемую формулу.

7. Примечание: Вы можете не использовать построитель выражений для создания формулы, а внести ее в режиме редактирования части «Данные» (где указано «Свободный») выбранного поля. При этом имена полей таблиц заключаются в квадратные скобки, и они должны полностью соответствовать названию, указанному при создании таблицы с соблюдением регистров и всех знаков, включая пробелы.

8. Сохраните созданную форму и откройте ее в режиме формы. В случае обнаружения ошибок вернитесь в режим конструктора.

Задания

1. Создайте поле, вычисляющее стоимость каждой поставки для Экземпляров медиатеки.

2. Для этого воспользуйтесь представленной выше последовательностью действий и следующими замечаниями:

· вычисляемое поле необходимо создавать в форме «Поставка подчиненная форма»;

· откройте эту форму в режиме «Конструктор»;

· выберите элемент управления «поле»;

· в надписи поля внесите «Стоимость поставки», в поле формулу =[Цена]*[Количество] (где [Цена] и [Количество]– это имена соответствующих полей таблицы «Поставка», которые используются в форме для отображения необходимых данных).

3. Откройте форму «Поставка подчиненная форма» и убедитесь, что вычисляемое поле работает верно.

4. Откройте форму «Экземпляр», посмотрите, видно ли вновь созданное поле. При необходимости внесите изменения в размер подчиненной формы, чтобы все данные отображались.

5. Сохраните изменения, результат продемонстрируйте преподавателю.

Создание главной кнопочной формы

Главная кнопочная форма – это форма, которая загружается первой при открытии БД. Данная форма должна содержать кнопки, по нажатию которых Вы сможете иметь доступ (открывать, распечатывать и т.д.) ко всем объектам Вашей БД: формам, запросам, отчетам. Кроме того, на ней должна быть кнопка выхода (как и на каждой из форм), либо кнопка возврата на главную форму.

При создании Главной кнопочной формы можно использовать:

1) режим Конструктора ();

2) Диспетчер кнопочных форм (меню Сервис/Служебные программ/Диспетчер кнопочных форм).

Для создания кнопочной формы в режиме Конструктора необходимо выполнить представленную ниже последовательность действий.

1. Создание «макета» формы:

· на закладке Форма выберите команду Создать;

· в качестве режима создания формы укажите Режим Конструктора;

· источник данных для формы не указывайте (вновь созданная форма имеет только область данных);

· сохраните форму по именем «Главная».

2. Вставка графического объекта в форму:

· на Панели Элементов выберите элемент управления Рисунок;

· поместите его в область данных;

· в появившемся диалоговом окне выберите графический файл (*.bmp) для вставки его в область данных;

· изменить свойства объекта можно, вызвав для него контекстное меню и воспользовавшись необходимыми командами.

3. Создание кнопки:

· на панели элементов выберите элемент управления кнопка;

· поместите его в область данных.

· выберите из списка категорий необходимую для Вас (например, Работа с формой);

· из списка действий выберите то, которое Вы предполагаете осуществлять с помощью данной кнопки (например, Закрытие формы). Нажмите кнопку Далее;

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

· дайте название вновь созданной кнопке. Рекомендуется оставлять нумерацию системы (название по умолчанию «Кнопка N», где N – номер по порядку).

· нажмите кнопку Готово;

· вид и расположение вновь созданной кнопки Вы можете изменить, воспользовавшись контекстным меню и соответствующими его командами;

· откройте форму в режиме формы, проверьте работу кнопки.

Задания

1. Построить главную кнопочную форму для учебной задачи, руководствуясь информацией пункта «Создание главной кнопочной формы» и следующими требованиями:

· на форме должен быть рисунок, соответствующий теме учебной задачи;

· каждые элементы созданной системы должны быть доступны из отдельной вкладки: формы, отчеты, запросы;

· на форме должны быть кнопки запуска элементов и закрытия формы;

· кнопки для запуска запросов и отчетов могут отсутствовать или существовать в виде «заглушек», то есть кнопок без назначенного действия;

· на каждой из созданных ранее форм должны быть кнопки закрытия формы и перехода на Главную форму (создайте на созданных Вами формах «Поставщик» и «Экземпляр» необходимые кнопки: создания новой записи, удаления записи, закрытия формы и перехода на главную) (см. рис. 5, 6).

Примечание: кнопки и другие элементы управления, позволяющие работать с остальными объектами БД, необходимо будет добавить при выполнении последующих лабораторных работ (11 и 12).

2. Сохраните Главную форму.

3. Проверьте ее работу.

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


Вопросы для самоконтроля

1. Для чего используется форма как объект СУБД MS Access?

2. Какие области формы Вы знаете, каково предназначение каждой из них?

3. В чем отличие Ленточного метода компоновки данных на форме (внешний вид) от Табличного?

4. В чем отличие метода компоновки данных на форме «Сводная таблица» от «Сводная диаграмма»?

5. В чем отличие метода компоновки данных на форме «В один столбец» от «Выровненного»?

6. Можно ли изменить выбранный стиль формы, если да, то как это сделать?

7. Если Вы хотите добавить в форму вычисляемое поле, какой элемент управления будете использовать и в какую область формы его поместите?

8. Какая часть элемента управления «поле» может быть изменена, а какая нет и почему?

9. Каков алгоритм создания подчиненной формы в режиме Мастера?

11. Можно ли использовать при записи вычисляемого выражения имена других вычисляемых полей данной формы (ответ обоснуйте)?

12. Определите назначение главной кнопочной формы.

13. Какова последовательность действий при работе с Диспетчером кнопочных форм? Укажите преимущества и недостатки данного режима?

14. Позволяет ли режим Конструктора форм создавать формы на основе нескольких таблиц или запросов, если да, то каким образом это осуществляется?

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

ЛАБОРАТОРНАЯ РАБОТА № 11
Конструирование запросов в СУБД MS Access

1. Конструирование запроса на выборку.

2. Конструирование запросов на удаление и обновление.

3. Конструирование запроса с параметром.

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

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

Запрос строится либо на основе одной или нескольких таблиц базы данных, либо используются таблицы, полученные в результате выполнения других запросов.

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

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

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

Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС и Цена с НДС (рис. 4.6).
  2. Для подсчета цены с учетом НДС создайте вычисляемое поле, записав в пустой ячейке строки Поле (Field) выражение [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС].
  3. Для отбора записей со значением выше 5000 в вычисляемом поле в строку Условие отбора (Criteria) введите > 5000
  4. После ввода выражения система по умолчанию формирует имя вычисляемого поля Выражение 1, которое становится заголовком столбца в таблице с результатами выполнения запроса. Это имя вставится перед выражением [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС]. Для каждого нового вычисляемого поля в запросе номер выражения увеличивается на единицу. Имя вычисляемого поля отделяется от выражения двоеточием. Для изменения имени установите курсор мыши в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстно-зависимом меню выберите Свойства (Properties) поля и в строку Подпись (Caption) введите новое имя поля ― Цена с НДС1 . Теперь в таблице с результатами выполнения запроса в заголовке вычисляемого столбца отобразится это имя. Имя поля может быть исправлено также непосредственно в бланке запроса.
  5. Для отображения результата выполнения запроса щелкните на кнопке Выполнить (Run) в группе Результаты (Results). Вычисляемое поле таблицы и за-проса имеют одинаковые значения.
  6. Измените в одной из записей запроса цену товара. Значения в обоих вычисляемых полях будут моментально пересчитаны.
  7. Для формирования сложного выражения в вычисляемом поле или условии отбора целесообразно использовать построитель выражений. Построитель позволяет выбрать необходимые в выражении имена полей из таблиц, запросов, знаки операций, функции. Удалите выражение в вычисляемом поле и используйте построитель для его формирования.
  8. Вызовите построитель выражений (Expression Builder), нажав кнопку Построитель (Builder) в группе Настройка запроса (Query Setup) ленты Конструктор (Design), или выбрав Построить (Build) в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в ячейке ввода выражения.
  9. В левой части окна Построитель выражений (Expression Builder) (рис. 4.7) выберите таблицу ТОВАР, на которой построен запрос. Справа отобразится список ее полей. Последовательно выбирайте нужные поля и операторы, двойным щелчком вставляя в выражение. Выражение сформируется в верхней части окна. Обратите внимание, построитель перед именем поля указал имя таблицы, которой оно принадлежит, и отделил его от имени поля восклицательным знаком.
  10. Завершите процесс построения выражения в вычисляемом поле, щелкнув на кнопке ОК.
  11. Сохраните запрос под именем ― Цена с НДС и закройте его.
  12. Выполните сохраненный , выделив его в области навигации и выбрав в контекстном меню команду Открыть (Open).


Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.
Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).

  1. Создайте в режиме конструктора запрос на выборку для таблицы НАКЛАДНАЯ. Перетащите в бланк поля НОМ_НАКЛ и КОД_СК (рис. 4.8).
  2. Создайте вычисляемое поле в пустой ячейке строки Поле (Field), записав туда одно из выражений: Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mmmm») ― эта функция возвратит пол-ное название месяца
    или Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mm») ― эта функция возвратит номер месяца.
  3. Для отбора накладных, выписанных в заданном месяце, в вычисляемом поле в строку Условие отбора (Criteria) введите название месяца, например март (рис. 4.8), или номер месяца, например 3 в соответствии с параметром в функции Format.
  4. Выполните запрос, нажав кнопку Выполнить (Run) в группе Результаты (Results) на вкладке ленты Работа с запросами | Конструктор (Query Tools | Design).
  5. Запишите в вычисляемом поле функцию Month(НАКЛАДНАЯ!ДАТА_ОТГ), и убедитесь, что эта функция возвращает выделенный из даты номер месяца.
  6. Для выборки всех строк, относящихся ко второму кварталу, в строку Условие отбора (Criteria) введите оператор Between 4 And 6, определяющий, попадает ли значение выражения в указанный интервал.
  7. Запишите в вычисляемом поле выражение MonthName(Month(НАКЛАДНАЯ!ДАТА_ОТГ)) и убедитесь, что функция MonthName преобразует номер месяца в его полное на-звание.


Для закрепления смотрим видеоурок.

Первый способ создания вычисляемого поля основан на том, что форма строится на базе запроса, в который включают вычисляемые столбцы. В форме создается текстовое поле, у которого в качестве источника данных указывается вычисляемый столбец запроса. Поле блокируется, чтобы пользователь не мог изменить в нем данные. Данные вычисляются в процессе выполнения запроса. Для блокировки поля в режимеКонструктора в окнеСвойства вычисляемого поля на вкладке Данные в строкеБлокировка введите ДА .

Во втором случае форма строится на базе таблицы. В форме создается новоее поле, в котором в качестве источника данных указывается выражение, например, = [Цена за единицу]*Количество. При ссылке на поля в выражениях обязательно использование квадратных скобок, если название поля состоит более чем из одного слова. Ввод выражения допускается прямо в элемент управление (поле), если оно короткое и длина поля это допускает. В противном случае выражение вводится в ячейку свойства Данные окнаСвойства. При этом можно воспользоваться построителем выражений. Если выражение не помещается в ячейке свойства, нужно нажать клавиши + и открыть окно Область ввода . При необходимости следует задать формат поля при выводе на экран.

6. Создание кнопочной формы

    Выберите команду меню Сервис/Служебные программы/Диспетчер кнопочных форм.

    В диалоговом окне, где запрашивается, нужно ли создавать кнопочную форму нажмите ДА .

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

    Открывается диалоговое окно Изменение страницы кнопочной формы . Откорректируйте название формы.

    Нажмите кнопку Создать . Появляется окноИзменение элемента кнопочной формы .

    В поле Текст введите наименование создаваемой кнопки. Имя кнопки должно ассоциироваться у пользователя с объектами, с которыми он предполагает работать. Второе полеКоманда позволяет определить действие, которое будет выполняться после нажатия этой кнопки. Выберите из раскрывающегося списка необходимую для вашего приложения команду.

    Добавьте кнопки для всех форм и отчетов, структурировав их по типу.

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

    Настройте приложение, чтобы Главная кнопочная форма открывалась при открытии БД. Для этого воспользуйтесь командой менюСервис/Параметры запуска .

ПРИМЕР:

Рис. 28. Кнопочная форма верхнего уровня

Лабораторная работа 3 создание запросов

Цель работы - получить практические навыки разработки запросов к БД.

Задание:

Выполнить тестирование схемы БД на типовых запросах. Необходимо создать как минимум по одному запросу каждого описанного ниже типа. В отчете запросы должны быть представлены формулировкой на естественном языке, на SQL, а также должен быть приведен пример результата выполнения запроса.

Последовательность выполнения работы

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

    В окне БД щелкните на закладке Запросы .

    Щелкните на кнопку Создать .

    В окне Новый запрос выберите Конструктор и нажмите кнопку OK .

    В окне Добавление таблицы выберите из окна списка таблицу (или запрос), по которой будет строиться запрос и нажмите кнопкуДобавить. Закрыть текущее окно. Далее на экране появиться окно Конструктора запросов .

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

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

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

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

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

    В бланке запроса в строке Условие отбора и в строке Или укажите условия выборки из базы данных. Условия представляют собой логические выражения.

Над условиями отбора, расположенными в одной строке, выполняется логическая операция AND . Несколько условий отбора по одному полю можно задать одним из двух способов: ввести все условия в одну ячейку строки Условие отбора , соединив их логическим оператором OR , либо ввести каждое условие в отдельную ячейку строки Или . Переход на следующую строку области ячеек ИЛИ по клавише <>. Выражения в ячейку бланка запроса вводятся с клавиатуры или для их создания используется Построитель выражений , который запускается командой Построить из контекстного меню, связанного со строкой Условие отбора (или можно нажать кнопку Построить на панели инструментов Access ).

    Посмотрите результаты запроса, нажав кнопку Запуск (кнопка с изображением восклицательного знака) или кнопку Вид на панели инструментов.

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

Запросы, созданные в режимах Конструктора и Мастера , генерируют команды на языке SQL. Можно просмотреть эти команды, выбрав из меню Вид опцию режим SQL .

ПРИМЕР:

Выбрать сведения о продуктах в количестве большем 100, но меньшем 300 и стоимостью менее 100 рублей.

Рис. 10. Конструктор запроса с условием

Рис. 11. Результат запроса с условием

2. Внутреннее соединение по одному полю

    Выберите вкладку Запросы окна БД, щелкните кнопку Создать. Откроется диалоговое окно Новый запрос . Выберите опцию Конструктор .

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

    Заполните бланк запроса.

    Щелкните на кнопке Запуск или Вид , чтобы отразить результаты запроса.

ПРИМЕР:

Выбрать наименования продуктов, на поставку которых заключен контракт, указав названия их производителей и объем поставки.

Рис. 12. Конструктор многотабличного запроса

Рис. 13. Результат многотабличного запроса

3. Внешние соединения

    Выполните пункты 1- 3 раздела Внутреннее соединение по одному полю.

    Установите связь между таблицами, если ранее она не была прописана в Схеме БД .

    Щелкните на линии объединения полей, чтобы выделить ее.

    Выберите из меню команды Вид опцию Параметры объединения. Отобразится диалоговое окно Параметры объединения .

    Выберите тип объединения, щелкните по кнопке OK . После этой операции на линии объединения появится стрелка, указывающая тип соединения.

4. Включение в бланк запроса групповой операции

    Щелкните по кнопке Групповые операции , знак на панели инструментов Конструктора запросов . В бланке запроса над строкой Сортировка появится строка Групповая операция .

    Замените в строке Групповая операция установку Группировка на требуемую групповую операцию , выбрав ее из поля со списком: Sum , Avg , Count , М in , Max , StDev , Var , First , Last , Expression (выражение), Where (условие), Group by (группировка).

Выражение позволяет ввести вместо названия поля в ячейку какое-либо выражение, например, для вычисления размаха значений по некоторому столбцу Х: Max ([ X ]) – Min ([ X ]).

Условие показывает, что это поле будет использоваться для задания условия отбора записей. Само условие выбора записывается в ячейку строкиУсловие отбора .

3. Выполните запрос.

ПРИМЕР:

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

Рис. 14. Конструктор запроса с группированием записей

Рис. 15. Результат запроса с группированием записей

5. Включение в бланк запроса вычисляемых полей

    Конструктора запросов .

    Щелкните в строке Поле по пустому столбцу бланка запроса. Введите имя столбца, затем двоеточие, за ним – выражение. Для ввода выражения щелкните по кнопке Построить , чтобы воспользоваться Построителем выражений .

    В верхней части Построителя выражений в области ввода создайте выражение.

    В столбце вычисляемого поля переместите курсор в строку Групповая операция и выберите в раскрывающем списке Выражение (если не выбрать опцию Выражение , при выполнении запрос открывает диалоговое окно Введите значение параметра или возвращает сообщение об ошибке).

    Запустите запрос.

ПРИМЕР:

Вычислить общую сумму заказа по каждому контракту (определяется как произведение количества товара и цены плюс затраты на транспорт).

Рис. 16. Конструктор запроса с вычисляемым полем

Рис. 17. Результат запроса с вычисляемым полем

6. Создание параметрического запроса

    Создайте запрос на выборку в режиме Конструктора запросов.

    Введите в одну из ячеек строки Условие отбора параметр, а не значение. Например, если выбор записей выполняется по фамилии, то в параметрическом запросе по полю Фамилия в условиях отбора в квадратных скобках может быть записана фраза [введите фамилию].

    Выберите из меню Запрос опциюПараметры . В диалоговом окне Параметры запроса в левом столбце введите в квадратных скобках параметр, совпадающий с параметром в бланке запроса Конструктора запросов (параметр можно скопировать из бланка запроса). В правом столбце укажите тип данных: нажмите клавишу , из списка выберите тип данных.

    Запустите запрос на исполнение. Access отобразит окно Введите значение параметра ,в которое введите требуемое Вам значение параметра и нажмите кнопку OK .

5. Запустите запрос на исполнение.

ПРИМЕР:

Выбрать список продуктов, срок годности которых превышает заданное значение.

Рис. 18. Конструктор параметрического запроса

Рис. 19. Ввод значения срока годности продукта

Рис. 20. Результат параметрического запроса

7. Создание перекрестных запросов

1. Создайте с помощью Конструктора новый запрос и включите в него необходимые таблицы.

2. Выберите поля, значения которых будут использованы для создания строк и столбцов динамической таблицы, и перетащите их в бланк запроса.

3. Выберите из меню командуЗапрос/Перекрестный. Заголовок Конструктора изменится сЗапрос 1: на выборку наЗапрос 1: перекрестный запрос . В бланке запроса отобразится строкаПерекрестная таблица .

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

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

в строке Перекрестная таблица выбрать опцию Заголовки столбцов ив строке Групповая операция установку Группировка, или в строкеГрупповая операция Условие, в строках Условие отбора и ИЛИ записать логическое выражение.

6. Задать поле, на основе которого будет создаваться итоговое значение. В строке Перекрестная таблица выбрать Значение. В строке Групповая операция выбрать итоговую функцию или Выражение. В последнем случае в ячейке Поле записать выражение.

7. Запустите запрос на исполнение.

ПРИМЕР:

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

Рис. 21. Конструктор перекрестного запроса

Рис. 22. Результат перекрестного запроса

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

Для того, чтобы создать таблицу из результатов запроса, использовавшегося для отбора записей в связанных таблицах, выполните следующие действия:

    Сделайте копию запроса на выборку записей из таблиц (или создайте новый).

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

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

    Нажмите кнопку ОК . Запрос на выборку преобразуется в запрос на создание таблицы.

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

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

    Раскройте вкладку Таблицы в окне БД; в списке должна появиться новая таблица.

9. Запрос на обновление записей

    Создайте новый запрос и включите в него созданную копию таблицы.

    Выберите в меню команду Запрос/Обновление . В бланке запроса строки Сортировка и Вывод на экран будут заменены строкой Обновление .

    В строке Обновление задайте выражение, которое представляет собой новое значение для текущего поля.

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

    Выполните запрос. Проконтролируйте правильность обновления записей.

ПРИМЕР:

Обновить стоимость продуктов, количество которого превышает 500 единиц, установив ее на уровне 90% от первоначальной стоимости.

Рис. 23. Конструктор запроса на обновление

10. Запрос на удаление записей

    Создайте копию таблицы, в которой предполагается обновление записей.

    Создайте новый запрос и включите в него соответствующую таблицу.

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

    Запустите запрос на выборку, чтобы отобразить подлежащие удалению записи.

    Откройте окно базы данных . Выберите вкладку Таблицы .

    Активизируйте созданный запрос на выборку и перейдите в режим Конструктора запроса .

    Выберите в меню команду Запрос/Удаление . В бланке запроса строки Сортировка и Вывод на экран будут заменены строкой Удаление .

    Щелкните на кнопке Запуск панели инструментов. Появится окно сообщений, запрашивающее подтверждение удаления записей.

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

ПРИМЕР:

Рис. 24. Конструктор запроса на удаление

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

Запрос на добавление записей используется часто для того, чтобы скопировать данные из одной таблицы в другую.

    Выберите вкладку Запросы окна БД, щелкните кнопку Создать. Откроется диалоговое окно Новый запрос . Выберите опцию Конструктор.

    В окне Добавление таблицы выберите таблицу, из которой будут браться данные.

    Перенесите в строку Поле бланка запроса поля, значения которых будут включаться в другую таблицу.

    Выберите команды меню Запрос/Добавление . Появится окно Добавление , где необходимо указать имя таблицы, в которую предполагается добавлять данные, и какой БД она принадлежит. Если БД не текущая, а какая-либо другая, то придется указать полное имя файла, содержащего БД.

В бланке запроса после строки Сортировка будет включена строка Добавление, в которой требуется указать те поля таблицы, куда добавляются данные. Если имена полей совпадают A с cess автоматически вставит в строку Добавление имена полей.

    Запустите запрос на исполнение. Посмотрите как изменилась таблица, в которую внесены новые строки.

Если в запросе на Добавление есть поля типа Счетчик , то работать с такими полями можно двумя способами:

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

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