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

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

Ещё одним видом запросов является запрос на обновление. Это вид запроса, который меняет только данные БД, но не саму её структуру, рисунок 13. Результатом таких запроса являются изменённые данные в таблицах, в том числе количество модифицированных записей. Сравните с запросами на выборку, где результатом была временная таблица с данными.

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

Для этого после создания запроса (по умолчанию создаётся запрос на выборку) необходимо активизировать команду Обновление. Вид БЗ при этом изменится: вместо строк Сортировка и Вывод на экран появляется строка Обновление, станет невозможным добавление групповых операций. Именно в строку Обновление следует писать те новые значения, которые примут данные в поле после модификации. Выражения эти могут содержать и старые значения поля. Например, чтобы повысить зарплату на 10%, нужно в обновлении написать [Зарплата]*1,1.

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

Встроенные функции

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

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

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

Для выполнения работы потребуется следующие функции.

  • Функция проверки условия IIf(Условие; Значение1; Значение2). Если выполняется Условие, то функция возвращает Значение1. Иначе она возвращает Значение2.

  • Функция Date() возвращает текущую дату.

  • Функции Right(Строка; N) и Left(Строка; N) возвращают первые N символов в строке справа или слева соответственно. Например, Left("абвг"; 2) даст строку "аб", Right("абвг"; 3) – строку "бвг".

  • Функции Year(Дата), Month(Дата) и Day(Дата) возвращают год, месяц и число от Даты соответственно. Например, Year(#12.10.2008#) = 2008, Month(#12.10.2008#) = 10 и т. д.

  • Функция DateSerial(Год; Месяц; День) по трём числам года, месяца и дня возвращает соответствующее значение даты. Например, DateSerial(1998; 2; 28) = #28.02.1998#. Эта функция, как и функции из предыдущего пункта, является функцией преобразования типа данных.

  • Функция CDate(Строка) преобразует строковый параметр с датой/временем в собственно дату/время. Например, CDate("12.07.2008") = #12.07.2008#. Функцию рекомендуется использовать при задействованных параметрах типа Дата/Время, так как по умолчанию параметры распознаются, как правило, в виде чисел или строк.

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

Year(Date()) - Year([ДР]) - IIf(Date() >= DateSerial(Year(Date()); Month([ДР]); Day([ДР])); 0; 1)

Анализ и доказательство правильности этого выражения провести самостоятельно для закрепления материала.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]