Использование свойства «Заголовки столбцов»
Иногда требуется изменить порядок следования столбцов в итоговой таблице. Для этого нужно, находясь в режиме конструктора, вызвать щелчком мыши по кнопке Свойства на панели инструментов свойства запроса. Затем щелкнуть на свойстве Заголовки столбцов и ввести текст заголовков в нужном порядке, отделяя их друг от друга точкой с запятой или запятой в зависимости от установок Windows.
1. В перекрестной таблице появятся лишь те столбцы, чьи имена указаны в свойстве Заголовки столбцов. Это обстоятельство можно использовать для отбора нужных столбцов.
2. Если какое-то имя введено с ошибкой, то в таблице появится пустой столбец с этим именем.
Запросы на изменение
Запросы этого типа позволяют автоматизировать изменения данных в таблицах, а также сохранить результат запроса в виде таблицы Access.
Запрос на добавление
С помощью запроса на добавление можно скопировать данные из одной таблицы (источника) и поместить их в другую таблицу (получатель). Причем можно добавить в таблицу-получатель как записи целиком, так и содержимое отдельных полей таблицы-источника.
Для создания запроса на добавление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу-источник. Затем выбрать пункт меню Запрос, а потом Добавление. На экране появится диалоговое окно Добавление (см. рис 4.13).
2. В поле Имя таблицы указать имя таблицы-получателя и затем нажать кнопку OK. Если таблица находится в другой БД, то нужно перед нажатием кнопки выбрать параметр В другой базе данных и ввести полное имя этой БД.
Рис. 4.13. Диалоговое окно Добавление
3. В бланк запроса следует включить:
• поля, участвующие в добавлении;
• поля, для которых задаются условия отбора;
• поле, соответствующее ключевому полю таблицы-получателя.
Если все поля в обеих таблицах имеют одинаковые имена, то можно просто переместить символ «звездочка» (*) в бланк запроса. Если имя добавляемого поля совпадает с именем соответствующего поля таблицы- получателя, то имя поля таблицы-получателя будет автоматически введено в строку Добавление. Если же имена полей таблиц отличны друг от друга, то в строке Добавление нужно указать имя поля таблицы- получателя, которое соответствует добавляемому полю таблицы- источника. Затем следует ввести условия отбора записей из таблицы- источника в строку Условие отбора.
4. Для просмотра добавляемых записей нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.
Рис. 4.14. Запрос на добавление в режиме конструктора
5. Для добавления записей нужно щелкнуть по кнопке Запуск на панели инструментов. Access сообщит число добавляемых записей и попросит подтвердить выполнение операции. После подтверждения записи будут добавлены в таблицу-получатель.
Пример 4.17. Нужно добавить в таблицу Студенты сведения о новых студентах. Эти сведения содержатся в таблице Первокурсники, имеющей такую же структуру, что и таблица Студенты, кроме поля Средний балл.
Создание запроса начнем с включения в окно конструктора таблицы-источника Первокурсники. Затем вызовем контекстное меню запроса и года выберем сначала Тип запроса, а потом пункт Добавление. В появившемся окне Добавление укажем имя таблицы-получателя Студенты.
В бланк запроса поместим все поля таблицы Первокурсники за исключением ключевого поля Код студента, так как оно имеет тип Счетчик.
Поскольку имена полей в обеих таблицах совпадают, Access сам сопоставляет с каждым полем таблицы-источника соответствующее поле таблицы-получателя (см. рис. 4.14).
После выполнения запроса в конец таблицы Студенты будут добавлены записи с информацией о первокурсниках. Access автоматически введет значения в поле Код студента. Поле Средний балл в добавленных записях будет пустым, так как сведения о среднем балле отсутствовали в таблице-источнике.
Запрос на удаление
Запрос на удаление позволяет удалить ненужные записи из таблицы. С его помощью можно удалять только всю запись целиком, а не отдельные поля внутри нее.
Для создания запроса на удаление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу, из которой предстоит удалить записи. Затем выбрать пункт меню Запрос, а потом Удаление.
2. Ввести условия отбора удаляемых записей в строку Условие отбора. Эти условия появятся под словом Условие строки Удаление.
3. Для просмотра удаляемых записей нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно нажав эту кнопку.
Рис. 4.15. Удаление заказов за январь 97 года
4. Для удаления записей нужно нажать кнопку Запуск на панели инструментов. Access сообщит число удаляемых записей и попросит подтвердить выполнение операции. После подтверждения записи будут удалены из таблицы.
Пример 4.18. Нужно удалить из таблицы Студенты записи, относящиеся к студентам со средним балом меньше 4. Известно, что эта таблица является главной в связи «один-ко-многим» между таблицами Студент и Успеваемость, для которой установлен режим обеспечения целостности данных, но не включен режим каскадного удаления.
Для выполнения этой операции с помощью запроса на удаление нужно включить в окно конструктора обе связанные таблицы и указать тип запроса — Удаление. Затем следует добавить в бланк запроса поле Средний балл Студенты и ввести в него условие отбора: 4<. После этого нужно перенести в бланк запроса звездочку (*) из таблицы Заказы. В ячейке Удаление в этом поле появляется значение Из (см. рис. 4.17).
Рис. 4.17. Удаление студентов со средним баллом >4.
Если выполнить этот запрос, то из подчиненной таблицы Успеваемость будут удалены записи, относящиеся к студентам, средний балл у которых >4. Для их предварительного просмотра достаточно щелкнуть по кнопке Выполнить.
После удаления записей о этих студентах нужно удалить саму таблицу Успеваемость из окна конструктора (см. рис. 4.18). Для этого следует выделить щелчком мыши список ее полей и нажать клавишу Delete. Затем нужно еще раз выполнить запрос. Теперь будут удалены записи из главной таблицы Студенты, указанные в условии отбора.
Запрос на создание таблицы
Запрос на создание таблицы позволяет создать таблицу на основе данных, содержащихся в других таблицах БД. Он часто используется для создания таблицы, предназначенной для экспорта в другую БД Access или архивной копии таблицы. Например, можно создать таблицу со сведениями обо всех старых заказах на книги прежде чем удалить их из таблицы Заказы.
Для создания запроса этого типа нужно выполнить следующие действия:
1. Включить в окно конструктора таблицы или запросы, содержащие записи, которые следует поместить в новую таблицу.
2. Поместить в бланк запроса поля, которые должна содержать новая таблица. Добавить к ним поля, для которых задаются условия отбора. В строке Условие отбора ввести условия выбора нужных записей.
Рис. 4.18. Удаление сведений о студентах со средним баллом >4
3. Выбрать пункт меню Запрос, а затем Создание таблицы. На экране появится диалоговое Создание таблицы (см. рис. 4.20).
Рис. 4.20. Диалоговое окно Создание таблицы
4. В поле Имя таблицы ввести имя создаваемой таблицы и затем щелкнуть по кнопке OK. Если таблица находится в другой БД, то нужно перед нажатием кнопки выбрать параметр В другой базе данных и ввести полное имя этой БД.
5. Для предварительного просмотра новой таблицы нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.
6. Для создания таблицы нужно щелкнуть по кнопке Запуск на панели инструментов. Если в БД уже существует таблица с таким именем, то Access попросит разрешения удалить ее перед началом операции. Затем он сообщит число записей и попросит подтвердить выполнение операции. После подтверждения будет создана таблица.
Пример 4.20. Построим запрос, создающий таблицу, в которой будет храниться информация о студентах с возрастом не менее 18 лет. Для этого добавим в окно конструктора таблицу Студенты и перенесем в бланк запроса звездочку (*) и поле Дата рождения. Введем в это поле условие в виде параметра (см. рис. 4.20) и установим для него тип Дата/время. Затем укажем тип запроса Создание таблицы и в окне Создание таблицы введем имя создаваемой таблицы: Студенты совершеннолетние.
Рис. 4.20. Отбор совершеннолетних студентов
Выполним созданный запрос. Access попросит ввести значение параметра и после ввода даты создаст таблицу Совершеннолетние студенты, содержащую фамилии студентов, дата рождения которых не превосходит введенной даты. Ее структура идентична структуре таблицы Студенты. При повторном выполнении запроса старая таблица будет удалена и ее заменит новая таблица с тем же именем.
Запрос на обновление
Этот запрос позволяет внести изменения в группу записей одной или нескольких таблиц. Для создания запроса на обновление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу или запрос, содержащие записи, которые следует обновить.
2. Выбрать пункт меню Запрос, а затем Обновление. В бланке запроса появится дополнительная строка Обновление.
3. Поместить в бланк запроса обновляемые поля и добавить к ним поля, для которых задаются условия отбора.
4. В строке Условие отбора ввести условия выбора нужных записей, а в строке Обновление ввести выражения, которые должны быть использованы для изменения полей.
5. Для предварительного просмотра обновляемых записей щелкнуть по кнопке Вид на панели инструментов. Выводимый список будет содержать старые значения. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.
6. Для обновления записей щелкнуть по кнопке Запуск на панели инструментов. Access сообщит число обновляемых записей и попросит подтвердить выполнение операции. После подтверждения в записи будут внесены новые значения.
Пример 4.20. Построим запрос, вносящий изменения в поле Всего часов. Предполагается, что количество часов должно увеличиться на 20%.
Рис. 4.21. Изменение количества часов отведенных на изучение предмета
Для создания запроса добавим окно конструктора таблицу Предмет и выберем пункт меню Запрос, а затем пункт Обновление. Поместим в бланк запроса обновляемое поле Всего часов и поле Код предмета, в котором зададим условие отбора 2 (см. рис. 4.21). После выполнения запроса Access обновит значения в шести записях.