Добавлен: 19.10.2018

Просмотров: 7970

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

66 

можно вывести приглашения «Введите начальную дату:» и «Введите конечную 
дату:»  для  определения  диапазона  отбираемых  значений.  Для  этого  в 
соответствующую  ячейку  строки  «Условие  отбора»  надо  ввести  выражение 
Between [Введите начальную дату:] And [Введите конечную дату:].  

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

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

 

2.2.8 Корректирующие запросы 

 

Корректирующие  запросы  (запрос  на  обновление  (Update),  удаление 

(Delete),  добавление  (Apptnd))  могут  изменять  как  все  записи  таблицы,  так  и 
определенное их подмножество – это будет зависеть от условия отбора.  

Для  создания  корректирующего  запроса  надо  в  режиме  конструктора 

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

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

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

 

Внимание!!! 

Надо 

быть 

очень 

внимательным 

перед 

выполнением 

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


background image

 

67 

 

Рис.2.30. Создание запроса на обновление  

 

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

 

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

(так как условие отбора не задано) на 30%.  

 

 

Рис. 2.31. Запрос на обновление (1)  


background image

 

68 

Запрос, изображенный на рис. 2.32, изменит зарплату одного конкретного 

сотрудника (см. условие отбора данного запроса) и установит для нее значение, 
указанное в запросе.  

 

 

 

Рис. 2.32. Запрос на обновление (2)  

 
При  выполнении  корректирующих  запросов  система  осуществляет 

контроль ограничений целостности. Так, например, если при описании таблицы 
было  задано  ограничение  на  максимально  допустимое  значение  поля  «Оклад», 
то  при  выполнении  запроса,  изображенного  на  рис.  2.31,  в  случае  нарушения 
ограничения  может  быть  выдано  сообщение  типа  изображенного  на  рис.  2.33. 
Если  Вы выберите вариант «Да», то для записей, нарушающих ограничение на 
значение,  корректировка  вообще  выполнена  не  будет.  В  нашем  примере  такой 
выбор  будет  неправильным,  так  как  в  этом  случае,  у  одних  сотрудников 
зарплата будет повышена, а  у  других  –  нет.  Причем  потом  разобраться,  у  кого 
она  была  повышена,  а  у  кого  –  нет,  будет  практически  невозможно.  В 
рассматриваемой  ситуации  следует  отказаться  от  выполнения  запроса, 
скорректировать  при  необходимости  ограничение  на  значение  и  только  после 
этого выполнить запрос.  


background image

 

69 

 

 

Рис. 2.33. Контроль ограничений целостности при выполнении 

корректирующих запросов  

 

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

 

При  выборе  «запроса  на  удаление»  в  бланке  запроса  в  строке  «Условие 

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

 

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

 

Запрос на добавление добавляет группу записей из одной или нескольких 

таблиц в конец одной или нескольких таблиц (он аналогичен команде APPEND 
FROM в dBase).  

Для  задания  запроса  такого  типа  надо  сначала  создать  запрос, 

содержащий  таблицу,  записи  из  которой  необходимо  добавить  в  другую 
таблицу.  Затем  в  режиме  конструктора  запроса  надо  нажать  стрелку  рядом  с 
кнопкой  «Тип  запроса»  на  панели  инструментов  и  выбрать  команду 
«Добавление»  (либо  выбрать  соответствующую  позицию  в  меню  «Запросы»). 
На экране появится диалоговое окно “Добавление”. В поле “ИМЯ ТАБЛИЦЫ” 
надо ввести имя таблицы, в которую необходимо добавить записи.  


background image

 

70 

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

базе  данных,  так  и  в  другой,  причем  это  не  обязательно  должна  быть  база 
данных Access (это может быть Microsoft FoxPro, Paradox или dBASE, а также б 
аза данных SQL).  

 

Из  списка  полей  в  бланк  запроса  надо  переместить  поля,  которые 

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

 

Если  все  поля  в  обеих  таблицах  имеют  одинаковые  имена,  то  можно 

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

 

Если  в  обеих  таблицах  выделенные  поля  имеют  одинаковые  имена, 

соответствующие имена  автоматически вводятся в  строку  «Добавление».  Если 
имена полей  двух таблиц  отличны  друг от друга,  в строку «Добавление»  надо 
ввести имена полей, добавляемых в таблицу.  

 

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

 

Запрос на создание таблицы фактически означает запоминание результата 

запроса в таблицеЧтобы использовать такую возможность надо создать запрос, 
результат  которого  следует  поместить  в  новую  таблицу.  Затем  в  режиме 
конструктора  запроса  надо  выбрать  «Тип  запроса»  -  «Создание  таблицы» 
(рис. 2.34).