Access запрос на обновление. Запрос на обновление записей - Базы данных: основные понятия. Запрос на удаление записей
С помощью запроса на обновление в базах данных Access можно добавлять, изменять и удалять данные в существующих записях. Запросы на обновление можно рассматривать как разновидность диалогового окна Поиск и замена с более широкими возможностями. Запрос на обновление нельзя использовать для добавления новых записей в базу данных или их удаления из нее.
Для добавления новых записей используется запрос на добавление, для удаления записей - запрос на удаление.
В этой статье
Обзор
Ниже представлены сходства и различия между функцией "Поиск и замена" и запросом на обновление
Как и в диалоговом окне Поиск и замена , в запросе на обновление можно указать значение, которое требуется заменить, а также новое значение.
В отличие от функции Поиск и замена запрос на обновление позволяет:
использовать условия, которые не зависят от заменяемого значения;
обновлять несколько записей за раз;
изменять записи в нескольких таблицах одновременно.
Ограничения обновления полей
Запрос на обновление нельзя использовать для обновления данных в полях указанных ниже типов.
Вычисляемые поля. Значения вычисляемых полей не хранятся в таблице постоянно. После вычисления они существуют только во временной памяти компьютера. Поскольку для вычисляемых полей не предусмотрено место постоянного хранения, их невозможно обновить.
Поля итогового или перекрестного запроса. Значения в запросах этих типов рассчитываются, поэтому их нельзя обновить с помощью запроса на обновление.
Поля с типом данных "Счетчик". Значения в полях с типом данных "Счетчик" изменяются только при добавлении записи в таблицу.
Поля в запросах уникальных значений и уникальных запросов на поиск записей Значения в таких запросах суммируются. Некоторые значения представляют одну запись, а другие - более одной записи. Операция обновления невозможна, так как невозможно определить, какие записи были исключены как дубликаты, и, следовательно, невозможно обновить все необходимые записи. Это ограничение действует, если вы используете запрос на обновление или пытаетесь обновить данные вручную путем ввода значений в форму или таблицу.
Поля в запросе на объединение Вы не можете обновить данные из полей запроса на объединение, так как каждая запись, отображаемая в нескольких источниках данных, отображается только один раз в результатах запроса на объединение. Поскольку некоторые повторяющиеся записи удаляются из результатов, приложению Access не удается обновить все необходимые записи.
Поля, являющиеся первичными ключами. В некоторых случаях, например если поле первичного ключа используется в связи таблиц, обновить поле с помощью запроса невозможно, если только для связи не было настроено автоматическое каскадное обновление.
Примечание: При каскадном обновлении Access автоматически обновляет значения внешнего ключа при изменении значения первичного ключа в родительской таблице.
Использование запроса на обновление
Чтобы создать запрос на обновление, рекомендуется выполнить следующее: создать запрос на выборку для определения записей, которые требуется обновить, а затем преобразовать его в запрос на обновление и обновить записи. Такая последовательность позволяет убедиться, что вы обновляете именно нужные записи.
Совет: Перед выполнением запроса на обновление рекомендуется создать резервную копию базы данных. Результаты данного запроса нельзя отменить, а созданная резервная копия позволит вам восстановить данные в случае необходимости.
Создание резервной копии базы данных
Откройте вкладку Файл и выберите команду Сохранить как . Обратите внимание: если вы используете Access 2010, откройте вкладку Файл и выберите команду Сохранить и опубликовать .
Справа в разделе Расширенная установка щелкните элемент Создать резервную копию базы данных .
В диалоговом окне Сохранение резервной копии укажите имя и расположение резервной копии и нажмите кнопку Сохранить .
Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте резервной копии имя исходной версии и откройте переименованную резервную копию в Access.
В этом разделе
Этап 1. Создание запроса на выборку для определения обновляемых записей
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить .
Убедитесь, что запрос возвращает те записи, которые следует обновить.
Чтобы удалить поля, которые не нужно включать в конструктор запросов, выделите их и нажмите клавишу DELETE.
Чтобы добавить поля в конструктор запросов, перетащите их в бланк запросов.
Откройте базу данных, содержащую записи, которые нужно обновить.
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов .
Откроется конструктор запросов и диалоговое окно Добавление таблицы .
Откройте вкладку Таблицы .
Выделите одну или несколько таблиц с записями, которые требуется обновить, и нажмите кнопку Добавить , а затем - кнопку Закрыть .
Таблица или таблицы отображаются в конструкторе запросов в одном или нескольких окнах, а в Windows список всех полей в каждой таблице. На этом рисунке показан конструктор запросов с обычной таблицей.
1. Таблица в окне конструктора запросов
2. Бланк запроса
В окнах таблиц дважды щелкните поля, которые необходимо обновить. Выделенные поля появятся в строке Поле бланка запроса.
Для каждого столбца в бланке запроса можно добавить одно поле таблицы.
Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (* ) в верхней части списка полей таблицы в окне таблицы. На рисунке показан бланк запроса со всеми добавленными полями.
Чтобы ограничить результаты запроса на основе значений полей, в бланке запроса в строке Условие введите условие, которое необходимо использовать для ограничения результатов.
Таблица примеров условий
В приведенной ниже таблице представлены некоторые примеры условий, а также результаты их применения.
Примечание: Во многих примерах этой таблицы используются подстановочные знаки, чтобы сделать запрос более гибким или эффективным.
Условие | Результат |
---|---|
Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234. |
|
>= " Новосибирск " |
Возвращает все записи от "Новосибирск" до конца алфавита. |
Между #2/2/2020 # и #12/1/2020 # |
Выбирает даты между 2-фев-17 и 1-дек-17 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знаков решетки (# ) одинарные кавычки (" ). Пример: между "2/2/2020" и "12/1/2020". |
Not "Германия" |
Находит все записи, в которых содержимое поля не соответствует значению "Германия". Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова "Германия", например "Германия (евро)" или "Европа (Германия)". |
Находит все записи кроме тех, которые начинаются с буквы "Т". Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (% ) вместо звездочки (* ). |
|
Находит все записи, которые не оканчиваются буквой "т". Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*). |
|
In(Канада,Великобритания) |
Находит все записи в списке со словами "Канада" или "Великобритания". |
В текстовом поле выполняется поиск всех записей, которые начинаются на одну из первых четырех букв алфавита (А-Г). Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*). |
|
Находит все записи, которые содержат сочетание букв "тр". Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*). |
|
Like "Григорий Верны?" |
Находит все записи, начинающиеся с имени "Григорий" и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии "Верный", а последняя буква неизвестна. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (? ) знак подчеркивания (_ ). |
Поиск всех записей в течение 2 февраля 2020 г. Если в базе данных используется набор подстановочных знаков ANSI-92, заключайте дату в одинарные кавычки (") вместо знаков решетки (#); Например, ("2/2/2020"). |
|
< Date() - 30 |
Использует функцию Date для возврата всех дат не менее 30-дневной давности. |
Использует функцию Date для возврата всех записей, содержащих текущую дату. |
|
Between Date() And DateAdd("M", 3, Date()) |
Использует функции Date и DateAdd для возврата всех записей между текущей датой и датой на три месяца позже. |
Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение. |
|
Возвращает все записи, содержащие непустое значение. |
|
Возвращает все записи, содержащие строку нулевой длины. Такие строки обычно используются, когда поле обязательно должно иметь значение, но это значение еще неизвестно. Например, в поле требуется ввести номер факса, но у некоторых клиентов его нет. В этом случае вы вводите пару двойных кавычек без пробела между ними ("" ), а не цифрами. |
Этап 2. Обновление записей
Обновление данных в одной таблице данными из другой таблицы
При обновлении данных в одной таблице данными из другой необходимо соблюдать основное правило: типы данных исходного и целевого полей должны совпадать или быть совместимыми.
Кроме того, при обновлении данных в одной таблице данными из другой и использовании совместимых типов данных вместо совпадающих приложение Access преобразует типы данных этих полей в целевой таблице. В результате некоторые данные в целевых полях могут обрезаться (удаляться). В разделе указаны случаи, когда можно или нельзя выполнять преобразование типов данных. Также в этом разделе приведена таблица, демонстрирующая, когда преобразование типа данных может привести к изменению или удалению всех либо некоторых данных в поле, а также какие данные могут удаляться.
Процесс обновления данных в одной таблице данными из другой включает основные этапы, указанные ниже.
Создание запроса на обновление и добавление в него исходной и целевой таблиц.
Объединение этих таблиц по полям, содержащим связанные сведения.
Добавление имен целевых полей в строку Поле бланка запроса.
Добавление имен исходных полей в строку Обновление бланка запроса с использованием следующего синтаксиса: [исходная_таблица].[исходное_поле ] .
Действия, описанные в данном разделе, предполагают, что используются две похожих таблицы. В этом примере таблица "Клиенты" располагается в унаследованной базе данных и содержит более свежие данные, чем таблица "Заказчики". Несколько имен менеджеров и адресов были изменены. Поэтому было принято решение обновить таблицу "Заказчики" данными из таблицы "Клиенты".
Таблица "Покупатели"
Код покупателя | Адрес | Город | Область | Почтовый индекс | Страна | Телефон | Контакт |
|
---|---|---|---|---|---|---|---|---|
Музей научных достижений |
Загородное шоссе, д. 150 |
Московская обл. |
Верный Григорий |
|||||
Авиакомпания "Урал-тур" |
ул. Гарибальди, д. 170 |
Пермская обл. |
Корепин Вадим |
|||||
Винный завод |
ул. Кедрова, д. 54 |
Красноярск |
Красноярский край |
Ожогина Инна |
||||
Фармацевтическая фабрика |
ул. Губкина, д. 233 |
Тверская обл. |
Новиков Николай |
|||||
Кофейная фабрика |
пл. Хо Ши Мина, д. 15, кв. 5 |
Шашков Руслан |
||||||
Почтовая служба |
Лихов пер., 991 |
Красноярск |
Красноярский край |
Горноженко Дмитрий |
||||
НИИ железа |
Ул. Тенистая, д. 698 |
Московская обл. |
Грачев Николай |
|||||
Корпорация "Софт" |
ул. Заречная, 503 |
Ильина Юлия |
||||||
Лесопитомник |
ул. Заречная, 504 |
Сергиенко Мария |
Таблица "Клиенты"
Код клиента | Адрес | Город | Область | Почтовый индекс | Страна | Телефон | Руководитель |
|
---|---|---|---|---|---|---|---|---|
Музей научных достижений |
Загородное шоссе, д. 150 |
Московская обл. |
Песоцкий Станислав |
|||||
Авиакомпания "Урал-тур" |
ул. Гарибальди, д. 170 |
Пермская обл. |
Корепин Вадим |
|||||
Винный завод |
ул. Кедрова, д. 54 |
Красноярск |
Красноярский край |
Ожогина Инна |
||||
Фармацевтическая фабрика |
ул. Губкина, д. 233 |
Тверская обл. |
Новиков Николай |
|||||
Кофейная фабрика |
Орликов пер, д. 896 |
Шашков Руслан |
||||||
Почтовая служба |
Лихов пер., 991 |
Красноярск |
Красноярский край |
Подколзина Екатерина |
||||
НИИ железа |
ул. Строителей, д. 150, кв. 78 |
Московская обл. |
Попкова Дарья |
|||||
Корпорация "Софт" |
ул. Заречная, 503 |
Верный Григорий |
||||||
Лесопитомник |
ул. Заречная, 504 |
Сергиенко Мария |
Помните, что хотя типы данных каждого поля таблицы могут не совпадать, они должны быть совместимыми. Приложение Access должно быть в состоянии преобразовать данные исходной таблицы в тип данных, используемый в целевой таблице. Иногда в процессе преобразования часть данных удаляется. Дополнительные сведения об ограничениях при преобразовании см. в разделе .
Создание и выполнение запроса на обновление
Примечание: В описанных ниже действиях предполагается, что используются два приведенных выше образца таблиц. Описанные действия можно адаптировать к конкретным данным.
Ограничения преобразования типов данных
В приведенной ниже таблице представлен перечень типов данных Access и описаны ограничения преобразования типов данных и возможные при этом потери данных.
Конечный тип данных | Преобразуемый тип данных | Изменения и ограничения |
---|---|---|
Текстовый |
255 первых знаков остаются, остальные удаляются. |
|
Числовой |
Нет ограничений. |
|
Дата/время |
Нет ограничений. |
|
Денежный |
Нет ограничений. |
|
Нет ограничений. |
||
Логический |
||
Текстовый |
Нет ограничений. |
|
Числовой |
Нет ограничений. |
|
Дата/время |
Нет ограничений. |
|
Денежный |
Нет ограничений. |
|
Нет ограничений. |
||
Логический |
Значение -1 ("Да" в логическом поле) преобразуется в "Да". Значение 0 ("Нет" в логическом поле) преобразуется в "Нет". |
|
Нет ограничений. |
||
Числовой |
Текстовый |
Текст может включать только числа, допустимые денежные значения и разделители целой и дробной частей. Число знаков в поле с типом данных "Текстовый" не должно превышать соответствующий размер поля, заданный для типа данных "Числовой". |
Поле МЕМО должно содержать только текст и допустимые разделители целой и дробной частей. Число знаков в поле МЕМО не должно превышать соответствующий размер поля, заданный для типа данных "Числовой". |
||
Числовой (с другим размером поля или другой точностью) |
Значения не должны быть больше или меньше, чем размер нового поля. Из-за изменения точности приложение Access может округлить некоторые значения. |
|
Дата/время |
Возможность преобразования даты и времени зависит от размера числового поля. Следует помнить, что в приложении Access все даты хранятся как порядковые номера, а значения даты и времени - как числа двойной точности с плавающей запятой. Дата 30 декабря 1899 г. имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 г. до 11 сентября 1900 г., превышают размер поля "Байт". Даты, не входящие в интервал от 13 апреля 1810 г. до 16 сентября 1989 г., превышают размер поля "Целое". Чтобы вместить все возможные даты, присвойте свойству Размер поля числового поля значение Длинное целое или больше. |
|
Денежный |
Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных "Денежный" можно преобразовать в поле "Целое" только в том случае, если его значение больше 255, но не превышает 32 767. |
|
Значения не должны выходить за пределы размера, заданного для поля. |
||
Логический |
Значения "Да" преобразуются в -1. Значения "Нет" преобразуются в 0. |
|
Дата/время |
Текстовый |
|
Исходный текст должен быть распознаваемым сочетанием даты или даты и времени. Например, 18-Янв-2020. |
||
Числовой |
Значение должно находиться в интервале от -657434 до 2958465,99998843. |
|
Денежный |
Значение должно находиться в интервале от -657434 ₽ до 2958465,9999 ₽ |
|
Значение должно находиться в интервале от -657434 до 2958466. |
||
Логический |
Значение -1 ("Да") преобразуется в 29 декабря 1899 г. Значение 0 ("Нет") преобразуется в полночь (00:00:00). |
|
Денежный |
Текстовый |
|
Текст должен состоять только из чисел и допустимых разделителей. |
||
Числовой |
Нет ограничений. |
|
Дата/время |
Нет ограничений, но Access может округлить значение. |
|
Нет ограничений. |
||
Логический |
Значение -1 ("Да") преобразуется в 1 ₽Значение 0 ("Нет") преобразуется в 0 ₽ |
|
Текстовый |
||
Не допускается, если поле с типом данных "Счетчик" является первичным ключом. |
||
Числовой |
Не допускается, если поле с типом данных "Счетчик" является первичным ключом. |
|
Дата/время |
Не допускается, если поле с типом данных "Счетчик" является первичным ключом. |
|
Денежный |
Не допускается, если поле с типом данных "Счетчик" является первичным ключом. |
|
Логический |
Не допускается, если поле с типом данных "Счетчик" является первичным ключом. |
|
Логический |
Текстовый |
|
Исходный текст должен содержать только значения "Да", "Нет", "Истина", "Ложь", "Вкл" и "Выкл". |
||
Числовой |
||
Дата/время |
Пустое значение и значение 00:00:00 преобразуются в значение "Нет", все остальные значения преобразуются в значение "Да". |
|
Денежный |
Нуль и пустое значение преобразуются в значение "Нет", все остальные значения преобразуются в значение "Да". |
|
Все значения преобразуются в значение "Да". |
||
Текстовый |
Если исходный текст содержит допустимый веб-адрес, например adatum.com , www.adatum.com или http://www.adatum.com , он преобразуется в гиперссылку. Access пытается преобразовать и другие значения: текст становится подчеркнутым, а указатель мыши изменяется при наведении на ссылку, но эти ссылки не работают. Текст может содержать любое допустимое обозначение веб-протокола, в том числе http://, gopher://, telnet://, ftp:// или wais://. |
|
Просмотр предыдущего элемента. Действуют те же ограничения. |
||
Числовой |
Не допускается, если поле с типом данных "Числовой" используется в связи. Если исходное значение представлено в форме допустимого IP-адреса (четыре тройки цифр, разделенных точками: nnn.nnn.nnn.nnn), а числа соответствуют веб-адресу, в результате преобразования получается действительная ссылка. В противном случае Access добавляет префикс http:// в начало каждого значения, и итоговые ссылки не работают. |
|
Дата/время |
В начало каждого адреса добавляется префикс http:// |
|
Денежный |
В начало каждого значения добавляется префикс http:// , но, как и в случае с датами, итоговые ссылки практически никогда не работают. |
|
Не допускается, если поле "Счетчик" используется в связи. В начало каждого значения добавляется префикс http:// , но итоговые ссылки практически никогда не работают. |
||
Логический |
Access преобразует все значения "Да" в значение "-1", но не все значения в 0 и добавляет http:// в начало каждого значения. Итоговые ссылки не работают. |
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если при попытке выполнения запроса на изменение ничего не происходит, проверьте, не появилось ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
По умолчанию Access блокирует все запросы на изменение (запросы на обновление, добавление, удаление и создание таблицы) кроме тех случаев, когда база данных находится в надежном расположении или подписана и является доверенной. Если какое-либо из этих условий не выполнено, можно разрешить запросы для текущего сеанса работы с базой данных, нажав кнопку Включить содержимое на панели сообщений.
Версия SQL: инструкция UPDATE
Если пользователь знает язык SQL, можно также написать инструкцию UPDATE в режиме SQL. Чтобы использовать режим SQL, создайте пустой запрос и переключитесь в режим SQL.
В данном разделе приведен синтаксис инструкции UPDATE и пример ее использования.
Синтаксис
UPDATE таблица SET новое_значение WHERE условие ;
Инструкция UPDATE состоит из нескольких частей.
Замечания
Инструкция UPDATE особенно полезна, если требуется внести изменения в большое количество записей или если записи, которые необходимо изменить, находятся в нескольких таблицах.
Одновременно можно изменить несколько полей. В приведенном ниже примере значения "СуммаЗаказов" увеличиваются на 10 процентов, а значения "Доставка" - на 3 процента для поставщиков в Великобритании.
UPDATE Orders
SET OrderAmount = OrderAmount * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = "UK";
Этот тип запросов-действий предназначен для изменения значений некоторых полей для всех выбранных записей. После входа в режим Конструктора запроса нужно выбрать команду Запрос/Обновление . После этого в бланке запроса появится строка Обновление . Эта строка используется для того, чтобы задать новые значения для выбранных записей.
Рис. 25 Вид окна запроса на обновление записей
Обновлять значения можно не только в полях критериев, а в любом поле таблицы. Также для выбранных записей можно создавать вычисляемые поля.
Запрос на удаление записей
Этот вид запросов служит для удаления группы записей базы данных, удовлетворяющих определенным условиям. Обычный запрос можно преобразовать в запрос на удаление с помощьюкоманды Запрос/Удаление в режиме Конструктора запросов. При этом в бланке запроса появится строка Удаление , где можно ввести условие для удаления записей.
Рис.26 Вид окна запроса на удаление записей
В режиме Конструктора запроса необходимо указать таблицу, в которой будут проводиться удаления. Затем определить критерии и обязательно просмотреть результаты выполнения запроса на выборку.
Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление.
Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам:
Таблица является частью отношения один-ко-многим
В качестве условия обеспечения целостности данных использована опция Каскадное удаление связанных полей.
Например, вы решили исключить каких-то студентов и удалить соответствующие записи из таблицы Студенты . При этом существует также таблица Экзамены , которая связана с таблицей Студенты, отношением один – ко многим. Если для обеспечения целостности данных выбрана опция , в результате удаления записей о студентах будут удалены записи об их оценках, то есть информация об успеваемости!
Если установлена опция Каскадное удаление связанных полей и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление.
Запрос на добавление записей
С помощью запроса на добавление записей можно скопировать выбранные записи и поместить их в другую таблицу. Можно также использовать запрос на добавление для переноса данных в используемую базу данных из другого источника (из какой-либо другой таблицы).
Выполнение запроса на добавление записей можно начать (также как и в других запросах-действиях) с запуска запроса-выборки – для того, чтобы убедиться, что вы копируете необходимые записи.
Если необходимо добавить записи к таблице в другой базе данных, сначала следует присоединить таблицу-источник к базе, содержащей целевую таблицу, с помощью команды Файл/Внешние данные/Связь с таблицами. Для отбора добавляемых записей нужно составить запрос на выборку. Затем надлежит выполнить составленный запрос и оценить результат, переключившись в режим таблицы с помощью команды Вид/Режим таблицы. После этого необходимо вернуться в режим Конструктора и активизировать команду Запрос/Добавление.
В открывающемся окне диалога нужно в поле Имя таблицы имя таблицы, к которой требуется присоединить данные из результирующего набора записей запроса. Закрытие диалогового окна кнопкой ОК приводит к тому, что Access добавляет в бланк запроса строку Добавление .
Рис. 27 Вид окна запроса на добавление записей
В строку Добавление автоматически (или вручную) вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса. Далее следует выполнить запрос. Для этого выполните команду Запрос/ Выполнить или щелкните по кнопке Выполнить на панели инструментов. В специальном диалоговом окне Access укажет сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции.
Однако при переключении на запрос-выборку и обратно Access не сохраняет соответствия имен полей. Так что если перед запуском соответствующего запроса на добавление записей вы хотите выполнить запрос-выборку, приходится заново задавать соответствия имен двух таблиц.
Добавленные по ошибке записи легко находятся и удаляются. Тем не менее, можно сэкономить время, если сделать резервную копию таблицы, в которой будет осуществляться добавление записей.
Создание запросов на обновление таблиц
Запрос на обновление данных используется для изменения существующих записей в таблицах. Основное отличие таких запросов от запросов на добавление и удаление – это то, что изменяются значения отдельных полей записей. Можно удалять значения полей, оставляя те пустыми, при этом операция будет равносильна удалению части записи. Кроме того, можно заполнять пустые значения отдельных полей данными, что равносильно добавлению данных. Но если необходимо добавить или удалить строки целиком, необходимо использовать запросы на добавление или удаление записей соответственно.
Обновлять данные можно не во всех полях. Ниже приводится список полей, значения которых нельзя изменить запросом на обновление:
Поля, источником записей для которых служат итоговые запросы или перекрестные запросы, которые будут рассмотрены далее в этой главе;
Поля-счетчики, потому что их значение изменяется только при добавлении записей в таблицу;
Поля в запросах на объединение, так как эти данные не хранятся в базе, а выбираются из указанных таблиц;
Поля в запросах на уникальные значения и запросах на уникальные записи – запросах, возвращающих неповторяющиеся значения или записи;
Первичные ключи, участвующие в отношениях между таблицами, кроме тех случаев, когда эти отношения были настроены на автоматическое выполнение каскадного обновления через поля ключа и любые связанные поля.
Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля ЮрийСоздание и редактирование таблиц Таблицы можно создавать как в режиме конструктора, так и в режиме таблицы. В режиме таблицы на ленте появляется вкладка Режим таблицы (рис. 7.13), где можно найти команды для работы с полями и их свойствами. Рис. 7.13. Создание новой
Из книги AutoCAD 2009 автора Орлов Андрей АлександровичСоздание простых запросов на выборку Для создания простых запросов на выборку лучше всего использовать Мастер запросов. Рассмотрим два вида простых запросов:? подробные – в результате выполнения таких запросов будут отображены все записи из одной или нескольких
Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри ПСоздание таблиц Команда TABLE создает табличный объект: вставляет пустую таблицу в рисунок, начиная с указанной точки, или в определенную область с использованием стиля таблицы, количества строк, столбцов и размеров, которые вы назначаете. Для вызова команды TABLE нужно
Из книги Word 2007.Популярный самоучитель автора Краинский ИСоздание запросов TOP PERCENT Можно писать запросы, возвращающие записи, количество которых определяется заданным процентом от общего количества записей в таблице. Например, если у вас есть таблица с 1000 записей и необходимо возвратить один процент первых записей, то, как
Из книги AutoCAD 2010 автора Орлов Андрей Александрович5.1. Создание таблиц Работа с таблицами не является основным предназначением Microsoft Word. Однако иногда в документ требуется вставить данные, которые лучше воспринимаются именно в виде таблицы. Если таблица несложная, использовать специальные программы для работы с
Из книги Реферат, курсовая, диплом на компьютере автора Баловсяк Надежда ВасильевнаСоздание таблиц Команда TABLE создает табличный объект: вставляет пустую таблицу в рисунок, начиная с указанной точки, или в определенную область с использованием стиля таблицы, количества строк, столбцов и размеров, которые вы назначаете.После запуска команды TABLE
Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни МСоздание таблиц Вставить таблицу в документ Word можно несколькими способами. Самый простой из них – воспользоваться кнопкой Вставить таблицу, расположенной на панели инструментов Стандартная, и указать размер, то есть количество строк и столбцов. Правда, в этом случае вы
Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир8.9.2 Обновление таблиц RIP Как видно на рис. 8.5, маршрутизатор А пересылает трафик в сеть 136.10.0.0 через маршрутизатор B. А получил изменения от своего соседа D, который объявил о более коротком маршруте, и А изменил свою таблицу маршрутизации. Отметим, что количество попаданий от
Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир
Создание таблиц Таблицы HTML создаются в четыре этапа.На первом этапе в HTML-коде с помощью парного тега
Создание запросов на добавление данных Запрос на добавление используется, когда необходимо добавить к имеющейся таблице новые записи. Исходных таблиц может быть одна или несколько, при этом они могут находиться в той же самой базе данных, что и результирующая, или в
Из книги Как приручить компьютер за несколько часов автора Ремнева ИринаСоздание запросов на удаление записей Запрос на удаление записей используется, если требуется удалить запись целиком. Такой запрос удаляет все данные каждого поля записи вместе со значением ключа, который делает эту запись
Из книги Продвижение порталов и интернет-магазинов автора Гроховский Леонид О.Создание таблиц Предполагается, что, достигнув той точки, когда вы готовы создавать таблицы, вы уже выполнили анализ данных и подготовили модель, а также вы имеете совершенно четкое представление о структурах ваших главных таблиц и их взаимоотношениях. Для подготовки к
Из книги автораСоздание таблиц Давайте создадим табличку (будете, например, расписание уроков детям писать, или распорядок дня, или…).Чтобы не запутаться, создадим новый файл. Помните как? Открываем Word, видим Документ 1 (если программа открыта, то Файл? Открыть), сохраняем новый документ
Из книги автораСоздание групп запросов После чистки мы получим очень длинный список, состоящий из важных для нашего портала либо интернет-магазина запросов, однако работать с этим списком будет крайне сложно, поскольку он неструктурирован. Следующая задача – выстроить структуру,
Помимо запросов на выборку, с помощью которых осуществляется только отбор необходимых данных, Access предоставляет возможность модифицировать данные с помощью запросов на обновление. При выполнении такого запроса результирующая таблица не формируется, поскольку его задачей является изменение данных в таблице, выбранной в качестве источника данных во время формирования запроса. Поэтому бланк запроса может содержать только поля, значения которых требуется обновить, и поля, по значениям которых отбираются записи для изменения в них данных.
После включения в бланк запроса полей выбранной таблицы выполняется команда Запрос ® Обновление , после чего в нижней части бланка строка Сортировка заменяется строкой Обновление . В эту строку в ячейку поля, значения которого необходимо изменить, вводится выражение. Например, в ячейку поля Зарплата будет введено выражение 1,5* [оклад ] – 0,13*1,5* [оклад ] , из которого видно, что зарплата каждого сотрудника в 1,5 раза больше его оклада минус 13% вычетов. Наименования полей, значения которых будут использованы при вычислении введенного выражения, должны быть заключены в квадратные скобки.
С помощью запроса на обновление можно изменять данные не всех записей, а выборочно. Для этого в бланк запроса включаются поля, по значениям которых будет вестись отбор записей. Например, в таблице Сотрудник необходимо увеличить оклады на 25% только инженерам. С этой целью в ячейку столбца Оклад вводится выражение 1,25* [Оклад ] , а в ячейку, находящуюся в строке Условие на выборку и в столбце поля Должность , записывается критерий поиска инженер .
Иногда бывает затруднительно вводить с клавиатуры имена полей, используемых в выражениях, особенно если эти имена длинные. В этом случае целесообразно скопировать их в буфер обмена, предварительно выделив имена этих полей в строке Поле бланка запроса.
При запуске запроса на обновление (щелчок на кнопке Запуск ! ) или его открытии в окне базы данных Access предупредит, что будут обновлены значения такого-то количества записей.
Для просмотра результатов расчета после выполнения запроса необходимо в окне базы данных щелкнуть на значке объекта Таблицы , выделить имя таблицы (в данном случае таблицы Сотрудник ) и открыть ее щелчком на кнопке Открыть .
Итоговые запросы
Итоговые запросы позволяют выполнять вычисления (сумму, среднее значение и др.) по всем записям для какого-либо числового поля, определять количество записей. Итоговые запросы формируются, как и ранее рассмотренные виды запросов, с помощью бланка запроса по образцу. В нижнюю часть бланка запроса включаются поля, для которых рассчитываются итоговые значения, а также поля, по которым производится группировка записей. Например, необходимо определить для каждого подразделения (см. таблицу Сотрудник ) количество сотрудников, занимающих определенную должность, а также сумму окладов и среднее значение зарплаты по каждой должности. Для этого в запрос включаются поля Подразделение и Должность , по которым группируются записи, а также поля Должность (т.е. в нижнюю часть бланка запроса это поле вставляется дважды), Оклад и Зарплата , чтобы подсчитать соответственно количество сотрудников, сумму окладов и среднюю зарплату для каждого наименования должности.
После включения требуемых полей в запрос необходимо щелкнуть на кнопке S (Групповые операции ), расположенной на инструментальной панели, после чего появится строка Групповые операции . В каждой ячейке этой строки отобразится слово Группировка . Для полей Подразделение и Должность значение Группировка в строке Групповая операция должно быть оставлено. Щелчок на ячейках остальных полей со значением Группировка вызывает появление кнопки выбора данных из списка, из которого выбирается требуемая операция: для поля Должность – Count (количество), для поля Оклад – Sum (сумма), для поля Зарплата – Avg (среднее значение). Кроме указанных функций, также часто используются функции Max (максимальное значение) и Min (минимальное значение). Для полей Подразделение и Должность целесообразно включить сортировку по возрастанию.
Редактирование запросов
Для внесения необходимых изменений в запрос любого вида его имя следует маркировать в окне базы данных и щелкнуть на кнопке Конструктор . На экране появляется бланк запроса, в который можно вносить изменения: вставить, удалить или переименовать поля, изменить условия отбора, тип сортировки и др.
Чтобы удалить поле, необходимо щёлкнуть на любой ячейке этого поля, а затем выполнить команду Правка ® Удалить .
Для перемещения поля его выделяют щелчком над его заголовком и перетаскивают в соответствующее место бланка запроса.
Добавление нового поля осуществляется таким же образом, как вставка поля при формировании запроса.
Формы
Создание форм
Access предоставляет возможность вводить данные либо непосредственно в таблицу, как было рассмотрено ранее, либо с помощью форм. Формы рекомендуется использовать, если данные часто меняются или база постоянно пополняется новыми записями. Если данные вводятся непосредственно с бланков, то графическими средствами форму можно представить так, чтобы она повторяла оформление бланка, что заметно облегчает работу пользователя.
С помощью форм данные можно не только вводить, но и отображать в удобном для пользователя виде.
Формы можно создавать в режиме Конструктор или с помощью Мастера форм, или использовать автоформы. В отличие от таблиц и запросов, которые рекомендуется формировать с помощью Конструктора, формы удобнее создавать, используя автоформы или Мастер форм, а Конструктор применять при редактировании и форматировании форм.
Автоформы бывают трех видов: «в столбец» ленточные и табличные. Табличные формы имеют вид таблиц Автоформа «в столбец» может отображать только одну запись.
Для создания автоформы в окне базы данных надо щелкнуть на значке элемента Формы и затем щелкнуть на кнопке Создать . В диалоговом окне Новая форма выбирается вид автоформы и источник данных: таблица или запрос. После щелчка на кнопке OK автоформа выводится на экран.
Использование Мастера форм позволяет отображать в форме не все поля источника данных, а выборочно, по желанию пользователя. Для выбора поля в окне Доступные поля маркируется имя требуемого поля, а затем выполняется щелчок на кнопке переноса > . Для «переноса» всех полей источника данных в окно Выбранные поля используется кнопка >> .
Создавая форму с помощью Мастера, можно выбрать внешний вид формы: в один столбец (на экране отображается только одна запись), ленточный или табличный. Можно также задать требуемый стиль и имя формы.
Ms Access поддерживает два режима блокировок.
Оптимистическая блокировка. Используется по умолчанию. Запись блокируется только во время сохранения, а в процессе редактирования остается незаблокированной. При сохранении Access блокирует измененные записи, чтобы избежать ошибочной ситуации. Например, когда пользователь может внести в запись либо неверные изменения, либо изменить не ту запись.
Пессимистическая блокировка. Это блокировка изменений. Позволяет только одному пользователю писать в заблокированные данные. Другие пользователи могут читать их, несмотря на блокировку, но не писать в них.
Для задания уровня блокировки данных в Ms Access 2007 следует:
В разделе Дополнительно установлены параметры блокировок Access (рис.6).
Рис.
6 Раздел окна для управления блокировками
Проблема при выполнении запросов
Поскольку в Access по умолчанию включен флажок ,
то при открытии базы данных под лентой появляется сообщение о блокировке записей.
В таком режиме защиты записей созданные запросы на изменение не работают. Для выполнения запросов на изменение необходимо снять блокировку.
Появится
окно Параметры безопасности Microsoft
Office
(рис.7).
Рис.7 Окно оповещения системы безопасности
Запрос на обновление
На сумму недоимки коммунальных платежей должны начисляться пени в размере 1/300 ставки рефинансирования Банка России, действующей на день оплаты, за каждый день просрочки уплаты.
Указание Банка России от 31.05.2010 № 2450-У
Запросы на обновление для изменения значения поля позволяют изменить данные в таблице. Они используются для обновления значений полей с помощью одного общего выражения. Пример запроса на обновление для изменения значений в столбце Пени в зависимости от значения полей Сумма , Недоплата и от значения ставки рефинансирования Банка России.
Пени = Сумма*Недоплата*8.75/300
Задание 1. Создать запрос к таблице ОплатаКоммУслуг на обновление значений поля Пени .
Действия
Появится окно
Список полей таблицы ОплатаКоммУслуг появится верхней половине окна Конструктора.
Бланк запроса предназначен для определения полей и условий, которые будут использованы для выполнения запроса.
Нижняя
половина окна бланка запроса первоначально
имеет вид (рис.8).
Рис. 8 Нижняя половина окна Конструктора для создания конкретного типа запроса
По умолчанию в бланке запроса содержится 6 строк (количество строк может меняться в зависимости от типа запроса).
Заголовок строки |
Назначение |
Имя поля, выбранного из таблицы |
|
Имя таблицы |
Имя таблицы добавленной в бланк запроса. Добавить в бланк запроса можно несколько таблиц. Новый запрос можно создать на базе существующего запроса. |
Сортировка |
Сортировка по возрастанию/убыванию или отсутствует |
Вывод на экран |
При флажке /отображает или не отображает на экране значения полей записей - результат выполнения запроса |
Условие отбора |
Критерий/критерии фильтрации записей из таблицы/запроса для результирующего набора данных. Если критериев несколько, то фильтрация осуществляется для логической операции И (AND). |
Критерий логической операции ИЛИ (OR) для включения дополнительных записей в результирующий набор данных |
В первом столбце нижней половины окна Конструктора выполнить действия для создания запроса на обновление поля Пени (рис.9).
Рис. 9 Окно построителя выражений
Появится окно сообщения (рис.10).
Рис.10
Окно - предупреждение об изменении
данных
Рис.11
Окно подтверждения обновления записей
Просмотр результатов выполнения запроса можно, открыв запрос в режиме Таблицы или, открыв таблицу ОплатаКоммУслуг в режиме таблицы.
Задание 2 . Создать запрос к таблице ОплатаКоммУслуг на обновление значений поля СуммаСучетомПени.
Действия
Выполнение запроса на обновление записей столбца СуммаСучетомПени осуществляется аналогично предыдущему заданию, повторением шагов предыдущего задания с 2-го пункта по пункт 5.4.
Затем следует создать выражение для вычисления значений поля СуммаСучетомПени (рис. 12).
Рис.
12 Вид выражения для изменения значений
для столбца СумаСучетоПени
Результат выполнения двух запросов на обновление записей представлен на рис.13
Рис.
13 Вид результирующей таблицы после
выполнения двух запросов на обновление
записей
Примечание
Рис. Фрагмент формы с всплывающей подсказкой для кнопки Обновление
На рисунке 16 представлено обновление трех поле при изменении данных в записях с номерами 1,7,12,22,23.
Рис.16
Таблица ОплатаКоммУслуг после выполнения
запроса на обновление трех столбцов