Создание и изменение запроса с помощью Конструктора запросов




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

Внешний вид окна Конструктора запросов приведен на рис.3.2. В верхней части окна отображается таблица (или несколько таблиц, если запрос многотабличный) в том виде, в каком таблицы отображаются в окне Схема данных (Relationship). Таблицы — источники данных для запроса, мы будем называть базовыми таблицами запроса. В нижней части окна находится бланк запроса — таблица, ячейки которой используются для определения запроса. В бланке отображаются все столбцы, включенные в результирующее множество запроса.

Рис. 3.2. Запрос "Товары" в режиме Конструктора запросов

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

В области панелей инструментов Access отображается панель инструментов Конструктор запросов (Queries Design). Эта панель представлена на рис. 3.3, а ниже приведено описание некоторых кнопок этой панели инструментов и соответствующие им команды меню.

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

§ Вид (View) Отображение запроса в различных режимах. Чтобы изменить режим отображения запроса, нажмите стрелку справа от кнопки и в появившемся списке выделите нужный элемент. Если просто нажать эту кнопку, запрос будет отображен в режиме Таблицы

§ Тип запроса (Query Туре) Изменение типа запроса. Для изменения типа запроса щелкните по стрелке справа от кнопки и выберите из списка нужный тип запроса

§ Запуск (Run) Выполнение запроса

§ Отобразить таблицу (Show Table) Выводится диалоговое окно Добавление таблицы (Show Table)

§ Групповые операции (Totals) Группировка записей в запросе и расчет итоговых значений

§ Набор значений (Top Values) Отобразить только первые записи запроса. Количество отображаемых записей указывается в поле ввода либо в штуках, либо в процентах

§ Свойства (Properties) Открытие окон свойств выделенных объектов: запроса или поля запроса

§ Построитель (Build) Вызов построителя для создания выражения. Кнопка доступна только тогда, когда активизировано свойство запроса или поля запроса, которое допускает ввод выражения, например Условие отбора (Criteria)

§ Окно базы данных (Database Window) Отображение окна базы данных

§ Новый объект (New Object) Создание нового объекта базы данных. Чтобы выбрать тип создаваемого объекта, нажмите стрелку справа от кнопки

 

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

4. Когда вы перешли в конструктор запросов, то у вас отображается окно Добавление таблицы (Show Table). Вы можете выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку Добавить (Add). Для удобства выбора таблиц и запросов в окне существуют следующие вкладки: Таблицы (Tables), на которой отображается список таблиц; Запросы (Queries), на которой отображается список запросов; Таблицы и запросы (Both), на которой отображается список таблиц и запросов вместе. Добавьте таблицу Приход_импорт.

5. После добавления всех необходимых таблиц нажать кнопку Закрыть (Close) в окне Добавление таблицы (Show Table). Все выбранные таблицы оказываются помещенными на верхней панели окна Конструктора запросов. Если таблицы связаны между собой, т. е. связи присутствуют явно на схеме данных, то эти связи также отображаются. Если связи на схеме данных не установлены, то Конструктор запросов автоматически устанавливает связи между таблицами, если они содержат поля, которые имеют одинаковые имена и согласованные типы.

Внимание. Иногда Конструктор устанавливает лишние связи, основываясь только на именах и типах полей. Это может привести к некорректным результатам запроса, поэтому нужно обязательно проверять, как отображаются связи между таблицами в окне Конструктора запросов, и удалить вручную лишние связи. Для этого выделите лишнюю связь, щелкнув по ней левой кнопкой мыши, и нажмите клавишу <Delete>. Работа со связями в окне Конструктора запросов выполняется точно так же, как в окне Схема данных (Relationship)

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

o Выделите нужное поле в таблице-источнике (можно выделить несколько полей, пользуясь клавишами <Shift> и <Ctrl>). Если требуется включить в запрос все поля базовой таблицы, выделите поле, обозначенное звездочкой (*). Дважды щелкните левой кнопкой мыши на выделенном поле. При этом в бланке запроса появится столбец, соответствующий выбранному полю. Затем аналогично добавьте другие поля. Столбцы в бланке запроса при этом заполняются слева направо.

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

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

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

Чтобы удалить поле из запроса, выделите нужный столбец в бланке запроса, а затем нажмите клавишу <Delete>. Чтобы выделить столбец, пользуйтесь областью выделения столбцов — узкой серой полоской над столбцами в бланке запроса. Когда вы подводите указатель мыши к этой области, он преобразуется в жирную стрелку, направленную вниз.

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

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

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

7. После формирования бланка запроса его можно сохранить, нажав на кнопку Сохранить (Save) на панели инструментов или выполнив команду меню Файл/ Сохранить (File/ Save). При этом появляется диалоговое окно, в котором нужно ввести имя сохраняемого запроса. Запрос можно сохранить и закрыв его. Дайте имя нашему первому запросу – Запрос_на_добавление_приход.

8. Результаты выполнения запроса можно увидеть, переключившись в режим Таблицы (Datasheet View) с помощью кнопки Вид (View) на панели инструментов. Просмотрите свои результаты. И закройте запрос.

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

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

11. Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table).

12. В поле имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае выберите из списка таблицу Приход. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель в другой базе данных (Another Database) и затем в поле имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)

13. В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 3.3). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.

14. Закройте запрос и сохраните его.

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

15. В окне базы данных в вкладке Запросы выберите запрос - Запрос_на_добавление_приход. Данный запрос выделяется от других специальным ярлычком Чтобы запустить его, нажмите кнопку Открыть. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.

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

Замечание

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

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

Пример 4. Добавление данных в таблицу Ввод_прихода.

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

1. Создайте новый запрос и добавьте таблицу Ввод_прихода_импорт.

2. Добавьте в бланк запроса следующие поля из таблицы Ввод_прихода_импорт: код_товара, цена, кол-во, сумма.

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

Также мы не добавляем поле Код_прихода из таблицы Ввод_прихода_импорт. Почему? Дело все в том, что в данном поле хранятся данные о старых ключах. Но когда мы добавляли данные из таблицы Приход_импорт в таблицу Приход мы присваивали новые ключи поля Код_прихода. Поэтому нужно теперь каким-то образом узнать а какие получились новые ключи. Информацию о новых ключах мы можем взять из таблицы Приход, куда уже были добавлены данные.

3. Добавьте в бланк запроса новую таблицу Приход и добавьте поле Код_прихода в запрос.

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

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

Убедится в этом легко, откройте запрос на просмотр (у вас появится очень большой список записей) и запомните результат. Теперь вернитесь в конструктор запросов и добавьте промежуточную таблицу.

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

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

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

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

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

9. Сохраните запрос под именем Запрос_на_добавление_ввод_прихода и запустите его на выполнение.

10. После выполнения операции добавления у вас должны успешно быть добавлены записи в таблицу Ввод_прихода, просмотрите их.

Самостоятельно создайте запрос на добавление записей в таблицу Ввод_расхода и сохраните его под именем Запрос_на_добавление_ввод_расхода. Запустите его на выполнение.

ÿ 2. Создание запросов на создание таблицы

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

1. Создать запрос на выборку.

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

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

Пример 5. Необходимо создать таблицу, в которую бы входили все записи о поставщиках из России. При этом в таблицу добавить информацию о названии поставщика и его адрес.

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

§ В окне базы данных в закладке Запросы нажмите кнопку Создать.

§ Из диалогового окна выберите Конструктор запросов.

§ Добавьте таблицу Поставщики.

§ Добавьте поля Название_поставщика и Адрес. Проверим работу запроса. Для этого в верху на панели инструментов выберите из списка Вид/Режим таблицы. Как вы увидите, после выполнения данного запроса у вас будут отображены все поставщики из всех стран. Перейдите обратно в режим конструктора.

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

§ Однако по условию нашего примера в новой таблице должны быть только поля Название_поставщика и Адрес, а вот поле Страна не должно быть. Чтобы его скрыть уберите галочку Вывод на экран поля Страна. Перейдите в режим таблицы и посмотрите получившейся результат. Перейдите обратно в режим конструктора.

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

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

§ В диалоговом окно Создание таблицы (Make Table) В текстовом поле имя таблицы (Table Name) введите описательное имя для новой таблицы, например: Список российских поставщиков.

Внимание. В базе данных Access не должно быть таблицы и запроса с одинаковыми именами.

§ В этом диалоговом окне можно определить также, где должна быть создана таблица — в текущей базе данных (переключатель в текущей базе данных (Current Database) выбран по умолчанию) или в другой базе данных. В последнем случае нужно выбрать переключатель в другой базе данных (Another Database) и ввести имя этой базы данных.

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

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

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

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

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

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

§ Нажмите кнопку Да (Yes). Поскольку запрос запускается впервые, будет создана новая таблица "Список российских поставщиков ".

§ Щелкните по ярлыку Таблицы (Tables) в окне базы данных и убедитесь, что в списке появилось новое название таблицы.

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

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

ÿ 3. Создание запросов на обновление данных

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

Пример 6. Классическим примером такого запроса является изменение цены в таблице "Товары" (Products) на некоторый постоянный коэффициент, например можно увеличить цену одной из категорий товара на 20%, например, это могут быть товары - торты. Чтобы создать такой запрос выполните:

  1. Создайте новый запрос в режиме конструктора и добавьте таблицу Товары.
  2. Перенесите в бланк запроса поля " Цена_приходная " и " Название_товара ".
  3. Введите условие отбора записей: например, в столбец "Название_товара" введите значение Like(«Торт*»)

Внимание. Давайте разберемся что обозначает запись Like(«Торт*»).Функция Like(m) выполняет отбор всех записей точно соответствующей строковой переменной m, а символ * - обозначает любое кол-во символов, идущих за или после строковой перемененной. Например, при выполнении данного запроса вам могут быть выданы следующие верные ответы: «Торт подарочный», «Торт2», «Торталетка». Подробнее о запросах на выборку будет рассказано позже.

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

5. Теперь изменим запрос, превратив его в запрос на обновление. Для этого выполните команду меню Запрос/ Обновление (Query, Update). Изменяется заголовок запроса и появляется дополнительная строка Обновление (Update To). При этом исчезают строки Сортировка (Sort) и Вывод на экран (Show) (рис. 8.8).

6. Теперь нужно в строку Обновление (Update To) ввести выражение, по которому будет вычисляться новая цена: [Цена_приходная]* 0,2+[Цена_приходная]. В других случаях можно вводить константу, например, если нужно поменять дату во многих записях на текущую.

7. Прежде чем выполнять запрос на обновление, щелкните левой кнопкой мыши по стрелке на кнопке Вид (View) и выберите Режим таблицы (Datasheet View). Вы увидите все записи, которые будут обновлены, хотя данные в обновляемых полях будут еще старые. И только убедившись, что отобраны нужные записи, можно выполнять запрос.

  1. Закройте запрос и сохраните его под именем Запрос_на_обновление. Теперь в окне базы данных ему соответствует другой значок, который сопровождается знаком , это означает, что запрос является запросом на изменение.
  2. Теперь можно выполнить запрос. Для этого дважды щелкните по нему мышью. Так же, как и при добавлении записей в таблицу, Access выдаёт сообщение о количестве обновляемых записей и запрашивает подтверждение на обновление. Вы можете подтвердить обновление записей или отвергнуть.
  3. Посмотрите получившийся результат в таблице Товары. Можете еще раз запустить запрос на обновление и еще раз повысить цену товара.

В приведенном примере изменялись значения в поле, которое не является первичным ключом в таблице " Товары " (Products). Особый случай возникает, когда требуется обновить значение первичного ключа в таблице. Если эта таблица связана отношением " один-ко-многим " с другими таблицами, то при изменении первичного ключа записи должны одновременно измениться значения внешних ключей во всех связанных записях подчиненных таблиц. Access обеспечивает выполнение такого изменения автоматически, т. к. поддерживает каскадное обновление записей. При определении связи между таблицами можно установить флажок каскадное обновление связанных полей (Cascade Update Related Fields).

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

Пример 7. Убедиться в том, как работает такой запрос, можно на примере таблиц "Приход" и "Ввод_прихода". Изменим дату накладной с текущей на 1.02.2010 для поставщика с кодом равным 10. Мы знаем, что эти таблицы связаны связью Один-ко-многим и что у них установлено свойство каскадное обновление связанных полей. Чтобы убедится в этом выполните:

1. Нажмите кнопку Схема данных (Relationships) на панели инструментов для вывода окна Схема данных (Relationships).

2. Выделите мышью связь между таблицами Ввод_прихода и Приход. Появится диалоговое окно Изменение связей (Edit Relationship).

3. В этом окне убедитесь, что установлены флажки Обеспечение целостности данных (Enforce Referential Integrity) и каскадное обновление связанных полей (Cascade Update Related Fields), каскадное удаление связанных полей. Нажмите кнопку ОК.

4. Закройте окно Схема данных (Relationships).

Для выполнения каскадного обновления:

1. Создайте новый запрос в режиме конструктора. Добавьте таблицы "Приход" и "Ввод_прихода" и разместите их на экране так, чтобы были видны обе таблицы.

2. Добавьте поле Код_поставщика и Дата_накладной.

3. Введите условие отбора по полю Код_поставщика значение 14. Просмотрите результат в режиме таблицы, запомните название поставщика (например, это может быть «МЧП Юг»). Вернитесь после этого в конструктор.

  1. Выберите меню Запрос/Обновление.
  2. В строке Обновление, в поле Дата_накладной введите дату - #1.02.2010#
  3. Закройте запрос и сохраните его под именем Запрос_на_обновление_связанных_таблиц.
  4. Выполните запрос.
  5. Посмотрите получившийся результат в таблице Приход. Чтобы убедится, что данные были совместно обновлены в двух связанных таблицах, в режиме таблицы, щелкните на поставщике с кодом 14 («МЧП Юг») с датой 1.02.2010. Нажмите на кнопку в виде знака «+», стоящего напротив строки таблицы. Нажмите эту кнопку и вам будет открыта связанная таблица Ввод_прихода с соответствующими записями. Просмотрите результат.

ÿ 4. Создание запросов на удаление данных

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

Если две таблицы связаны отношением "один-ко-многим", нельзя удалять записи из таблицы "один" если в таблице "многие" присутствуют соответствующие им записи. Сначала должны быть удалены записи в таблице "многие" и только потом — соответствующие им записи в таблице "один". Для того чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных записей (Cascade Delete Related Records). Такой флажок установлен, например, для связи таблиц "Расход" (Orders) и "Ввод_расхода" (Order Details).

Пример 8 Действительно, если требуется удалить из базы данных какой-то заказ, должны быть удалены не только запись об этом заказе в таблице "Расход", но все позиции данного заказа в таблице "Ввод_расхода".

Для создания запроса на удаления выполните следующее:

1. Создайте запрос в режиме Конструктора. Добавьте две таблицы Расход и Ввод_расхода.

2. Добавьте поля Код_клиента и Дата_накладной.

3. Выберите команду Запрос/Удаление (Query, Delete Query). В бланке запроса появится строка Удаление (Delete). В первом столбце строки Удаление (Delete) показывается значение Из (From), которое указывает, что будут удаляться записи из таблицы "Расход". Во втором столбце строки Удаление (Delete) вы видите значение Условие (Where), что указывает на использование этого столбца для определения критерия отбора удаляемых записей.

4. Удалим все старые записи с датами ранее 1.01.98. Для этого, перейдите в поле Дата_накладной и в поле Условие введите выражение <#1.01.98#

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

6. Сохраните запрос, дав ему имя: Запрос_на_удаление.

7. Выполните запрос. Будут удалены все заказы ранее 1998 г. из таблицы "Расход" и все позиции заказов из Ввод_расхода". Вы можете убедиться в этом, если откроете таблицу "Расход".



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: