- •Институт бизнеса и менеджмента технологий
- •«Компьютерные информационные технологии» кит -2
- •1. Технология проектирования запросов: запросы на выборку
- •2. Вычисления и группировка в запросах, запросы с параметрами
- •Подсчет данных с помощью строки итогов
- •Создание простого запроса на выборку
- •Подсчет всех записей в запросе
- •Подсчет записей в группе или категории
- •Добавление строки итогов
- •Скрытие строки итогов
- •Подсчет данных с помощью итогового запроса
- •3. Перекрестные запросы, запросы на создание таблицы
- •3.1 Перекрестный запрос
- •3.2 Запрос на создание таблицы
- •1. Поместите новую таблицу в текущую базу данных.
- •2. Поместите новую таблицу в другую базу данных.
- •4. Запросы на изменение и удаление данных
- •4.1 Запрос на изменение данных
- •4.2 Запрос на удаление данных
1. Поместите новую таблицу в текущую базу данных.
Выберите параметр Текущая база данных, если он еще не выбран, и нажмите кнопку ОК.
Нажмите кнопку Выполнить , а затем нажмите кнопку Да для подтверждения операции. При замене существующей таблицы эта таблица сначала удаляется и перед этим запрашивается подтверждение на удаление. Нажмите кнопку Да, а затем нажмите кнопку Да еще раз для создания новой таблицы.
2. Поместите новую таблицу в другую базу данных.
Выберите параметр В другой базе данных.
В поле Имя файла введите расположение и имя файла другой базы данных, или нажмите кнопку Обзор и в новом диалоговом окне Создание таблицы укажите расположение другой базы данных и нажмите кнопку ОК.
Нажмите кнопку ОК, чтобы закрыть первое диалоговое окно Создание таблицы.
Нажмите кнопку Выполнить , а затем нажмите кнопку Да для подтверждения операции.
При замене существующей таблицы эта таблица сначала удаляется и перед этим запрашивается подтверждение на удаление. Нажмите кнопку Да, а затем нажмите кнопку Да еще раз для создания новой таблицы.
4. Запросы на изменение и удаление данных
4.1 Запрос на изменение данных
С помощью запроса на обновление можно добавлять, изменять или удалять данные в одной или нескольких записях. Запросы на обновление можно рассматривать как разновидность диалогового окна Поиск и заменас более широкими возможностями. Следует ввести условие отбора (приблизительный аналог образца поиска) и условие обновления (приблизительный аналог образца замены). В отличие от диалогового окна Поиск и замена запрос на обновление может принимать несколько условий и позволяет обновить большое число записей за один раз, а также изменить записи сразу в нескольких таблицах.
Необходимо помнить приведенные ниже правила.
Запрос на обновление нельзя использовать для добавления новых записей в таблицу, но можно менять имеющиеся пустые значения на определенные значения. Для добавления новых записей в одну или несколько таблиц используйте запрос на добавление.
Запрос на обновление нельзя использовать для удаления записей целиком (строк) из таблицы, но можно менять имеющиеся непустые значения на пустые. Для удаления записей целиком (процесс, удаляющий также значение первичного ключа) следует использовать запрос на удаление.
С помощью запросов на обновление можно изменять все данные в наборе записей. Кроме того, нельзя выполнить запрос на обновление для следующих типов полей в таблице:
Поля, содержащие результаты вычислений. Значения вычисляемых полей не хранятся в таблице постоянно. Они существуют только во временной памяти компьютера, после того как будут вычислены. Поскольку для вычисляемых полей не предусмотрено место постоянного хранения данных, их невозможно обновить.
Поля, источником записей для которых служат итоговые запросы или перекрестные запросы.
Поля с типом данных «Счетчик». Значения в полях с типом данных «Счетчик» изменяются только при добавлении записи в таблицу.
Поля в запросах на объединение.
Поля в запросах на уникальные значения и запросах на уникальные записи — запросах, возвращающих неповторяющиеся значения или записи. Это правило применимо при использовании запроса на обновление, а также при обновлении данных вручную путем ввода значений в форму или таблицу.
Первичные ключи, участвующие в отношениях между таблицами, кроме тех случаев, когда эти отношения были настроены на автоматическое выполнение каскадного обновления через поля ключа и любые связанные поля. При каскадном обновлении автоматически обновляются любые значения внешнего ключа в дочерней таблице (таблица на стороне «многие» отношения «один-ко-многим») при изменении значения первичного ключа в родительской таблице (таблица на стороне «один» отношения «один-ко-многим»). Невозможно выполнять каскадное обновления для записей, использующих поле счетчика для создания значений первичного ключа.
Перед выполнением запроса на обновление следует создать резервную копию базы данных. Результаты запроса на обновление невозможно отменить, однако создание резервной копии позволяет отменить все изменения.
Нажмите кнопку Microsoft Office , наведите указатель на пункт Управление, а затем в группеУправление базой данных выберите команду Резервная копия базы данных.
В диалоговом окне Сохранение резервной копии укажите имя и расположение для резервной копии и нажмите кнопку Сохранить.
Исходный файл будет закрыт, после чего будет создана резервная копия и повторно открыт исходный файл.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте имя исходной версии резервной копии.
Самый надежный способ применения запроса на обновление состоит в том, чтобы сначала создать запрос на выборку для проверки условий отбора. Предположим, что требуется изменить для ряда полей с типом данных «Логический» значение «Нет» на значение «Да» для определенного заказчика. Для этого следует добавить условия к запросу на выборку так, чтобы данный запрос возвращал все записи со значением «Нет» для этого заказчика. Убедившись, что запрос возвращает верные записи, можно преобразовать запрос на выборку в запрос на обновление, ввести условия обновления и выполнить запрос, чтобы обновить выбранные значения.
Создание запроса на обновление. Способ 1.
На вкладке Конструктор в группе Результаты выберите команду Запуск. Убедитесь, что запрос возвращает те записи, которые следует обновить. Если требуется, выделите ненужные поля, включенные в бланк запроса, и нажмите клавишу DELETE, чтобы удалить их. Кроме того, можно перетащить на бланк запроса дополнительные поля.
На вкладке Конструктор в группе Тип запроса выберите команду Обновление.
В описанной здесь процедуре показано, как преобразовать запрос на выборку в запрос на обновление. При такой операции Access добавляет строку Обновление в бланк запроса. Выберите поле с данными, которые следует обновить, и введите выражение (условие изменения) в строке Обновление для этого поля. В строке Обновление можно использовать любое допустимое выражение. На вкладке Конструктор в группе Результаты выберите команду Запуск.
Появится предупреждающее сообщение.
Нажмите кнопку Да, чтобы выполнить запрос и обновить данные.
После выполнения запроса можно заметить, что в его результатах отсутствуют некоторые поля. Если запрос содержит поля, которые не обновлялись, по умолчанию эти поля не отображаются в результатах. Предположим, что были включены поля «Код» из двух таблиц, чтобы убедиться, что запрос возвращает и обрабатывает нужные записи. Если эти поля «Код» не обновлялись, то в приложении Access они не отображаются в результатах.
Обновление данных в одной таблице данными из другой таблицы
Множество пользователей баз данных сталкиваются с необходимостью обновить данные в одной таблице данными из другой, и многие из них считают эту задачу трудновыполнимой. При необходимости обновить данные в одной таблице данными из другой помните следующее правило: типы данных исходного и результирующего поля должны либо совпадать, либо быть совместимыми.
Кроме того, при обновлении данных в одной таблице данными из другой и использовании совместимых типов данных вместо совпадающих типов данных приложение Access выполняет преобразование типов данных этих полей в конечной таблице. В результате некоторые данные в конечных полях могут быть обрезаны (удаленыПроцесс обновления данных в одной таблице данными из другой состоит из следующих основных этапов.
Создайте запрос на обновление и добавьте исходную и конечную таблицы в запрос.
Объедините эти таблицы по полям, содержащим связанные сведения.
Добавьте имена конечных полей в строку Поле бланка запроса.
Добавьте имена исходных полей в строку Обновление бланка запроса с использованием следующего синтаксиса: [исходная_таблица].[исходное_поле].
Способ 2.
На вкладке Создание в группе Другие щелкните Конструктор запросов.
В диалоговом окне Добавление таблицы дважды щелкните исходную и конечную таблицы для добавления их в запрос. Каждая таблица отображается в окне конструктора запросов. Закончив добавление таблиц, нажмите кнопку Закрыть чтобы закрыть диалоговое окно Добавление таблицы.
Объедините эти таблицы по полям, содержащим связанные сведения. Для этого выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.
На вкладке Конструктор в группе Тип запроса выберите команду Обновление.
В конечной таблице дважды щелкните поля, которые нужно обновить. Каждое поле будет появляться в строке Поле бланка запроса.
В строке Обновление запроса в каждый столбец, содержащий конечное поле, добавьте имя исходной таблицы и поля исходной таблицы, соответствующее полю в конечной таблице, используя следующий синтаксис: [Таблица].[Поле], где имена таблицы и поля заключаются в квадратные скобки и разделяются точкой. Имена таблиц и полей в строке Обновление должны быть написаны правильно и должна быть соблюдена любая пунктуация в именах исходных таблиц и полей. Однако при этом не обязательно соблюдать регистр букв.
На вкладке Конструктор в группе Результаты выберите команду Запуск.
Нажмите кнопку Да для подтверждения обновления.
Данная таблица содержит список типов данных, доступных в приложении Access, описания всех ограничений по преобразованию типов данных и краткие описания возможных потерь данных при преобразовании.
Конечный тип данных |
Преобразуемый тип данных |
Изменения или ограничения |
Текстовый |
Поле МЕМО |
Первые 255 знаков остаются, остальные удаляются. |
|
Числовой |
Без ограничений. |
|
Дата/время |
Без ограничений. |
|
Денежный |
Без ограничений. |
|
Счетчик |
Без ограничений. |
|
Логический |
Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет». |
|
Гиперссылка |
Access обрезает ссылки длиннее 255 знаков. |
Поле МЕМО |
Текстовый |
Без ограничений. |
|
Числовой |
Без ограничений. |
|
Дата/время |
Без ограничений. |
|
Денежный |
Без ограничений. |
|
Счетчик |
Без ограничений. |
|
Логический |
Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет». |
|
Гиперссылка |
Без ограничений. |
Числовой |
Текстовый |
Текст может включать только числа и допустимые разделители целой и дробной части для числовых значений и денежных единиц. Число знаков в поле с типом данных «Текстовый» не должно превышать соответствующий размер поля, заданный для типа данных «Числовой». |
|
Поле МЕМО |
Поле с типом данных «Поле МЕМО» должно содержать только числа и допустимые разделители целой и дробной части для числовых значений и денежных единиц. Число знаков в поле «Поле МЕМО» не должно превышать соответствующий размер поля, заданный для типа данных «Числовой». |
|
«Числовой» (с другим размером поля или другой точностью) |
Значения не должны быть больше или меньше, чем может хранить размер нового поля. Из-за изменения точности в приложении Access могут округлиться некоторые значения. |
|
Дата/время |
Возможность преобразования даты и времени зависит от размера числового поля. Следует помнить, что в приложении Access хранятся все даты как порядковые номера, а значения даты и времени — как целые числа двойной точности с плавающей запятой. Дата 30 декабря 1899 года имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 года до 11 сентября 1900 года, превышают размер поля «Байт». Даты, не входящие в интервал от 13 апреля 1810 года до 16 сентября 1989 года, превышают размер поля «Целое». Чтобы вместить все возможные даты, установите параметр Размер поля (Field Size) числового поля равным Длинное целое или больше. |
|
Денежный |
Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных «Денежный» можно преобразовать в поле размера «Целое» только в том случае, если его значение больше 255, но не превышает 32767. |
|
Счетчик |
Значения не должны выходить за пределы размера, заданного для поля. |
|
Логический |
Значения «Да» преобразуются в -1. Значения «Нет» преобразуются в 0. |
|
Гиперссылка |
Не определен |
Денежный |
Текстовый |
Текст должен состоять из чисел и допустимых разделителей. |
|
Поле МЕМО |
Текст должен состоять из чисел и допустимых разделителей. |
|
Числовой |
Без ограничений. |
|
Дата/время |
Без ограничений, но в приложении Access значение может округлиться. |
|
Счетчик |
Без ограничений. |
|
Логический |
Значение («Да») преобразуется в 1р. Значение («Нет») преобразуется в 0р. |
|
Гиперссылка |
Не определен |
