Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ББД.docx
Скачиваний:
67
Добавлен:
15.02.2015
Размер:
426.06 Кб
Скачать

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

Для полей из указанных в схеме запроса таблиц можно указать любые вычисления. Чтобы произвести вычисления, в запрос необходимо добавить дополнителньые вычисляемые поля, значения которых рассчитываются на базе значений других полей запроса. Пример: Выше на 10%: [Наборы].[Цена]*1,1. Нужно обращать внимание, что разделителем между дробной и целой частью является запятая (лучше цифры набирать на цифровой добавочной клавиатуре, где символ «.» в вычислениях сразу однозначно интерпретируется, как символ «,».

    • Итоговые запросы, группировка, итоговые функции.

 

Итоговый запрос создается с помощью режима – Сводный запрос. Можно использовать три таблицы, включая связующую таблицу. При этом можно с любом месте запроса вызвать контекстное меню (правая кнопка мыши) и выбрать признак «групповые операции». В бланке запроса появится новая строка Группировка. Итоговые функции: в поле, по которому мы хотим посчитать итоги,  выбрать из списка функцию «Sum» (сумма), чтобы просуммировать все значения выбранных полей. Функция «Подсчет» посчитает количество значений поля.

8.4. Использование запросов на Удаление и на Обновление.

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

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

Вопрос 22 Условия отбора записей

Условия отбора записей могут задаваться для одного или нескольких полей в строке Условие отбора (Criteria) бланка запроса (см. рис. 4.5).

Условием отбора является выражение, которое состоит из, операторов сравнения и операндов.

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

Литералами являются конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, строковые значения, даты. Текстовые строки заключаются в двойные кавычки, даты — в знаки "#" (или одинарные кавычки (') в кодировке ANSI- 92). Например: 567, "Информатика", #1-Января-2004# ('1- Января-2004 ' В ANSI-92).

Константами являются неизменяющиеся значения, которые определены в Access, например, Истина (True), Ложь (False), Null.

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

Во многих случаях ссылка на конкретное значение должна указывать точное его местоположение в иерархии объектов базы данных, начиная с объекта верхнего уровня. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, ссылка на поле в таблице примет ВИД: [Имя таблицы] ! [Имя поля], а ссылка насвойство DefaultValue элемента управления дата заключения договора в форме договор:

Forms![ДОГОВОР]![ Дата заключения договора].DefaultValue.

Операторами сравнения и логическими операторами, использование которых допускается в выражении условия отбора, являются: =, <, >, о, <=, >=, Between, In , Like , And, Or, Not.

Они определяют операцию над одним или несколькими операндами.

Если выражение в условии отбора не содержит оператора, то по умолчанию Используется оператор = .

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

Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?) (ANSI-89) или знак процента (%) и подчеркивания (_) (ANSI-92).

Оператор Between позволяет задать интервал для числового значения и да­ты. Например:

Between 10 And 100 задает интервал от 10 до 100;

Between #01.01.1997* And #31.12.2003* задает интервал дат (в ANSI-92 вместо знака "#" используются одинарные кавычки (')).

Оператор in позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например:

In("Математики";"Информатики";"Истории")

Оператор Like позволяет работать с образцами, использующими символы шаблона при поиске в текстовых полях. Например:

Like "Иванов*" (ANSI-89) или Like "Иванов%" (ANSI-92)

Логические операторы and, or, not. Условия отбора, заданные в одной строке, связываются по умолчанию с помощью логической операции "И", заданные в разных строках— с помощью логической операции "ИЛИ". Эти операции могут быть также заданы явно в выражении условия отбора с помощью операторов and и orсоответственно. Оператор not задает логическое отрицание условия.

После ввода выражения в бланк и нажатия клавиши <Enter> Access выполняет синтаксический анализ выражения.

Использование логических операций в условии отбора

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

Допустим, надо выбрать товары, цена которых не более 1000 руб. и НДС не более 10%, а также товары, цена которых более 2500 руб. Результат должен содержать наименование товара (НАИМ_ТОВ), его цену (цена) и НДС (СТАВКА_НДС).

Для создания запроса в режиме конструктора в окне базы данных выберем Объект Запросы (Queries) и щелкнем на значке Создание запроса в режиме конструктора(Create query in.Pesign view).

Появится окно запроса на выборку в режиме конструктора <Имя запроса>: запрос на выборку (Select Query) и диалоговое окно Добавление таблицы <...> (Show Table <...>) (см. рис. 4.4). В диалоговом окне выберем таблицу товар и нажмем кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных окна конструктора запроса на выборку (см. рис. 4.6). Закроем окно Добавление таблицы (Show Table).

Для удаления таблицы из схемы данных запроса установите на нее курсор Мыши и нажмите клавишу <Delete>. Для добавления — нажмите кнопку.

В окне конструктора запроса (см. рис. 4.6) перетащим из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС в столбцы бланка запроса в строку Поле(Field).

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

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

Условия отбора оформим, как показано в бланке запроса на рис. 4.6. Между условиями, записанными в одной строке, выполняется логическая операция and. Между условиями, записанными в разных строках, выполняется логическая операция or.

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

Сохраним запрос, нажав кнопку Сохранить (Save) и задав ему имя "Пример!". Заметим, что имя запроса не должно совпадать не только с именами имеющихся запросов, но и с именами таблиц в базе данных. Закроем текущий запрос по команде меню Файл|3акрыть (File|Close) или нажав кнопку окна запроса Закрыть (Close). Сохраненный запрос можно выполнить, выделив его в окне базы данных и нажав кнопку Открыть (Open).