Создание запросов на добавление данных
Поэтому сначала создается запрос на выборку данных, в результат которого включаются те поля, которые должны составлять добавляемые записи, а также поля, в которых устанавливаются критерии отбора записей.
В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 1996 год и переносить их в другую таблицу так, чтобы таблица «Заказы» (Orders) содержала только актуальные данные. Для этого сначала создадим таблицу, которая будет хранить устаревшие данные:
- Раскройте список таблиц в окне базы данных и выделите таблицу «Заказы» (Orders).
- Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш + .
- Вставьте таблицу из буфера обмена, нажав комбинацию клавиш + . Появляется диалоговое окно Вставка таблицы (Paste Table As).
- В группе Параметры вставки (Paste Options) выберите переключатель Только структура (Structure Only).
- В поле имя таблицы (Table Name) введите строку: Заказы (архив). Нажмите кнопку ОК или клавишу .
В списке появляется новая таблица, пока пустая, т. к. мы скопировали только структуру таблицы «Заказы» (Orders). Теперь создадим запрос на добавление, который позволит перенести в новую таблицу данные из таблицы «Заказы».
- Раскройте список таблиц в окне базы данных и выделите в нем таблицу «Заказы».
- Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) инструментальной панели и выберите из раскрывшегося списка элемент Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите значение Конструктор (Design View). Появляется окно Конструктора запроса с таблицей «Заказы» в верхней части.
- Сначала создайте запрос на выборку нужных записей. Перетащите из списка полей таблицы «Заказы» все поля в строку бланка запроса Поле (Field).
- В строке Условие отбора (Criteria) столбца «ДатаРазмещения» введите выражение Between 101.01.961 And 131.12.961
- Запустите запрос на выборку, чтобы проверить, правильно ли отобраны записи. Оказались отобранными 152 записи.
- Выберите команду Запрос, Добавление (Query, Append) или щелкните левой кнопкой мыши по стрелке на кнопке Тип запроса (Query Type) и выберите из списка элемент Добавление (Append Query). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 8.6).
- В поле имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана таблица «Заказы (архив)», которую мы только что создали. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель в другой базе данных (Another Database) и затем в поле имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)
Рис. 8.6. Диалоговое окно Добавление
- В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 8.7). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.
- Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.
Если записи добавляются в таблицу, которая уже непуста, то наиболее часто встречающейся ошибкой при выполнении этого запроса является попытка вставить записи, у которых значение первичного ключа совпадает с ключами уже имеющихся в ней записей. Такие записи вставлены не будут, будет только выдано сообщение об их количестве.
Рис. 8.7. Бланк запроса на добавление
- Сохраните запрос в базе данных, присвоив ему имя Копирование заказов. Обратите внимание на значок в списке запросов, соответствующий запросу на добавление. Как и в любом запросе на изменение, он содержит восклицательный знак, но отличается от значка запроса на создание таблицы.
Запрос на добавление записей
Дата добавления: 2015-07-04 ; просмотров: 5574 ; Нарушение авторских прав
Схема построения запроса на добавление записей имеет много общего с разработкой запросов на создание таблицы. Записи из результирующего набора могут быть добавлены как в таблицу уже открытой базы данных, так и в какую-либо другую базу данных Access. Безусловно, структура запроса должна соответствовать структуре таблицы-получателя. Чтобы продемонстрировать, каким образом создается запрос на добавление записей в таблицу, создадим в базе данных таблицу, в которой указаны товары, которые должны подвести на склад (рис.15).
Чтобы построить запрос на добавление записей, выполните следующее.
1. Создайте новый запрос. В нашем примере бланк запроса включает три поля таблицы ОжидаемыеТовары (рис. 16).
2. Чтобы преобразовать запрос на выборку в запрос на добавление, щелкните на кнопке Добавление группы Тип запроса. На экране появится диалоговое окно Добавление.
3. Выберите из раскрывающегося списка поля имя таблицы название той таблицы, в которую необходимо добавить записи новой таблицы (для нашего примера это таблица Товары, как показано на рис. 17), затем примите предложенную по умолчанию опцию в текущей базе данных и щелкните на кнопке ОК.
В бланке запроса теперь появилась новая строка — Добавление (рис. 18).
При условии, что имена полей исходной таблицы, указанные в бланке запроса, совпадают с именами тех полей, куда должны быть добавлены данные, программа Access по умолчанию вносит эти имена в ячейки строки Добавление.
4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, какое число записей будет добавлено в таблицу. Щелкните на кнопке Да, чтобы завершить выполнение запроса.
5. Если необходимо, сохраните запрос.
6. Чтобы проверить полученные результаты, обратитесь к категории Таблицы области переходов и откройте целевую таблицу Товары.
Запросы на удаление
Как и следует из названия, главное и единственное назначение запросов такого типа — удалять из таблиц (или нескольких таблиц) записи, соответствующие определенному критерию. Именно записи, а не значения отдельных полей, для удаления которых можно воспользоваться запросом на обновление. Применение запросов на удаление обязывает быть предельно внимательным, поскольку удаление записей выполняется без возможности их последующего восстановления.
Порядок действий при создании запроса на удаление аналогичен приводимым выше процедурам для других запросов на изменение.
1. Создайте запрос на выборку, результирующими записями которого должны стать строки исходной таблицы, подлежащие удалению.
2. Перейдя в режим таблицы, убедитесь, что в результирующей таблице отображены именно те данные, которые следует удалить.
3. Вернитесь в режим конструктора запросов и воспользуйтесь для выбора типа запроса (на удаление записей) кнопкой Удаление группы Тип запроса. Запрос на выборку будет преобразован в запрос на удаление, а в бланке запроса вместо строки Сортировка появится новая строка — Удаление. Простой пример бланка запроса на удаление приведен на рис. 18.
4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, сколько записей будет удалено и запросит подтверждение операции. Щелкните на кнопке Да, если вы готовы расстаться с указанными записями.
Таков сценарий удаления записей из одной, не связанной с другими таблицы. Однако на практике таблицы базы данных, как правило, связаны между собой, и наличие этих связей в схеме базы данных обязательно учитывается программой Access при попытке удалить записи одной из связанных таблиц. Напомним, что если между таблицами определено отношение «один ко многим» и в диалоговом окне Изменение связей установлен флажок опции каскадное удаление связанных записей, при удалении записи в главной таблице автоматически будут удалены все связанные записи подчиненной таблицы, даже если ее поля не фигурировали в бланке запроса на удаление.
Если флажок каскадного удаления не установлен, но для данного отношения между таблицами опция Обеспечение целостности данных активизирована, удалить записи из родительской таблицы не удастся до тех пор, пока не будут удалены записи из подчиненной таблицы. При попытке удаления записей программа Access выдает соответствующее предупреждение о наличии связанных записей в подчиненной таблице.
Добавление записей в таблицу с помощью запроса на добавление
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
В этой статье описывается процедура создания и выполнения запроса на добавление. Запрос на добавление предназначен для добавления новых записей в существующую таблицу с использованием данных из других источников.
Если вам нужно изменить данные в существующем наборе записей (например, обновить значение поля), можно использовать запрос на обновление. Если вам нужно создать новую таблицу из набора данных или объединить две таблицы в одну, можно использовать запрос на создание таблицы. Дополнительные сведения о запросах на обновление и запросах на создание таблиц, а также общие сведения о других способах добавления записей в базу данных или изменении существующих данных можно найти в разделе » см .
В этой статье
Обзор
Запрос на добавление обеспечивает выборку записей из одного или нескольких источников данных и копирование выбранных записей в существующую таблицу.
Предположим, вы получили базу данных с таблицей потенциальных клиентов и у вас уже есть таблица с такими данными в существующей базе данных. Чтобы данные хранились в одной таблице, вы решаете скопировать их из новой базы данных в существующую. Чтобы не вводить новые данные вручную, записи можно скопировать с помощью запроса на добавление.
Преимущества использования запроса на добавление
Используя запрос для копирования данных, можно выполнять указанные ниже операции.
Добавление нескольких записей одновременно. При копировании данных вручную обычно приходится несколько раз копировать и вставлять записи. Используя запрос, можно выбрать все нужные данные одновременно, а затем скопировать их.
Просмотр выбранных данных перед копированием. Можно просмотреть выбранные данные в режиме таблицы и внести необходимые изменения перед их копированием. Это особенно удобно, если запрос содержит условия или выражения и вам необходимо несколько попыток для правильного выбора данных. Запрос на добавление нельзя отменить. Если сделана ошибка, придется либо восстанавливать базу данных с помощью резервной копии, либо исправлять ошибку вручную или с помощью запроса на удаление.
Уточнение выбора с помощью условий. Например, может потребоваться добавить записи только для клиентов, живущих в конкретном городе.
Добавление записей в целевую таблицу, в которой отсутствуют некоторые поля из источников данных. Предположим, что в существующей таблице клиентов 11 полей, а в новой таблице, из которой требуется скопировать данные, — только девять из них. Для копирования данных из девяти совпадающих полей можно использовать запрос на добавление, а два несовпадающих поля можно оставить пустыми.
Основные этапы создания запроса на добавление
Создание запроса на добавление включает следующие основные этапы.
Создание запроса на выборку. Сначала выделите данные, которые вы хотите скопировать. При необходимости в запрос на выборку можно вносить изменения и выполнять его до тех пор, пока не будут выбраны нужные данные для копирования.
Преобразование запроса на выборку в запрос на добавление. Когда выборка будет готова, можно изменить тип запроса для Добавление.
Выбор целевых полей для каждого столбца в запросе на добавление. В некоторых случаях Access выбирает целевые поля автоматически. Эти поля можно настроить или при необходимости выбрать самостоятельно.
Предварительный просмотр и выполнение запроса на добавление записей. Перед добавлением записей можно переключиться в режим таблицы для предварительного просмотра добавляемых записей.
Важно: Запрос на добавление нельзя отменить. Рекомендуется создать резервную копию базы данных или целевой таблицы.
Создание и выполнение запроса на добавление
В этой статье
Этап 1. Создание запроса на выборку записей для копирования
Откройте базу данных с записями, которые нужно скопировать.
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
Откроется окно конструктора запроса и диалоговое окно Добавление таблицы.
Дважды щелкните таблицы или запросы с записями, которые нужно скопировать, а затем нажмите кнопку Закрыть.
Таблицы или запросы появляются в виде одного или нескольких окон в конструкторе запросов. В каждом окне выводятся поля таблицы или запроса. На рисунке показана типичная таблица в окне конструктора запросов.
1. Таблица «Основные средства» в окне конструктора запросов
2. Бланк запроса
Дважды щелкните каждое поле, которое требуется добавить. Выбранные поля появятся в строке Поле бланка запроса.
Типы данных полей исходной таблицы должны быть совместимы с типами данных полей в конечной таблице. Текстовые поля совместимы с большинством других типов полей. Числовые поля совместимы только с числовыми полями. Например, можно добавить числа в текстовое поле, но нельзя добавить в числовое поле текст.
Кроме того, можно использовать в качестве поля выражение (например, =Date() для автоматического возврата текущей даты), а также настраивать данные выборки в бланке с помощью выражений, содержащих поля таблицы или запроса. Например, если в таблице назначения есть поле, в котором хранится четырехзначный год, а в исходной таблице — регулярное поле даты и времени, можно использовать функцию DatePart с исходным полем, чтобы выбрать только год.
Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку ( *) в верхней части списка полей таблицы. На рисунке показан бланк со всеми добавленными полями.
При необходимости можно ввести одно или несколько условий в строке Условие отбора бланка. В приведенной ниже таблице представлены некоторые примеры условий, а также результаты их применения.
Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие = «Новосибирск»
Возвращает все записи от «Новосибирск» до конца алфавита.
Between #02.02.2017# And #01.12.2017#
Выбирает даты между 2-фев-17 и 1-дек-17 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки одинарные кавычки (‘). Пример: Between ‘02.02.2017’ And ‘01.12.2017’.
Находит все записи, в которых содержимое поля не соответствует значению «Германия». Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова «Германия», например «Германия (евро)» или «Европа (Германия)».
Находит все записи, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента ( %) вместо знака звездочки ( *).
Находит все записи, которые не оканчиваются на букву «т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Находит все записи в списке со словами «Канада» или «Великобритания».
Находит в поле с типом данных «Текстовый» все записи, начинающиеся с букв «А-Г». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Находит все записи, которые содержат сочетание букв «ар». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like «Григорий Верны?»
Находит все записи, начинающиеся с имени «Григорий» и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии «Верный», а последняя буква неизвестна (на это указывает вопросительный знак). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания ( _).
Находит все записи за 2 февраля 2017 г. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки ( #) одинарные кавычки. Например: ‘02.02.2017’.
конструктор в группе результаты нажмите кнопку выполнить .
Убедитесь, что в запросе возвращены записи, которые вы хотите скопировать. Если необходимо добавить или удалить поля из запроса, переключитесь обратно в режим конструктора и добавьте их, как указано в описании предыдущего этапа, или выберите ненужные поля и нажмите клавишу DELETE, чтобы удалить их из запроса.
Этап 2. Преобразование запроса на выборку в запрос на добавление
На вкладке Главная в группе Представление щелкните элемент Представление, а затем — Режим конструктора.
На вкладке Разработка в группе Тип запроса выберите команду Добавить.
Откроется диалоговое окно Добавление.
Укажите, куда следует добавить записи: в таблицу текущей базы данных или в таблицу какой-либо другой базы данных.
Выполните одно из указанных ниже действий.
В диалоговом окне Добавление установите переключатель в текущей базе данных, выберите целевую таблицу в поле со списком Имя таблицы и нажмите кнопку ОК.
В диалоговом окне Добавление установите переключатель в другой базе данных.
В поле Имя файла введите расположение и имя целевой базы данных.
В поле со списком Имя таблицы введите имя целевой таблицы и нажмите кнопку ОК.
Этап 3. Выбор целевых полей
Способ выбора целевых полей зависит от того, как был создан запрос на выборку на этапе 1.
Добавление всех полей из исходной таблицы или запроса
Добавляет все поля целевой таблицы в строку Добавить к бланка запроса.
Добавление отдельных полей к запросу или использованным выражениям; названия полей в исходной и конечной таблицах совпадают
Автоматически добавляет совпадающие целевые поля в строку Добавить к в запросе.
Добавление отдельных полей или использованных выражений; какие-либо имена в исходной и целевой таблицах не совпадают
Добавляет совпадающие поля и оставляет несовпадающие поля пустыми.
Если Access оставляет поля пустыми, можно щелкнуть ячейку в строке Добавить к и выбрать целевое поле.
На приведенном рисунке показано, как щелкнуть ячейку в строке Добавление записей в таблицу и выбрать конечное поле.
Примечание: Если целевое поле оставлено пустым, запрос не добавит данных к этому полю.
Этап 4. Предварительный просмотр и выполнение запроса на добавление
Для предварительного просмотра внесенных изменений переключитесь в режим таблицы.
Совет: Для быстрого переключения режимов щелкните правой кнопкой мыши вкладку в верхней части запроса, а затем выберите нужный режим.
Вернитесь в режим конструктора и нажмите кнопку выполнить , чтобы добавить записи.
Примечание: При выполнении запроса, который возвращает большое количество данных, может появится сообщение об ошибке, в котором будет сказано, что отменить запрос не удастся. Попробуйте увеличить ограничение сегмента памяти до 3 МБ, чтобы выполнить запрос до конца.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если при попытке выполнения запроса на добавление ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Чтобы отменить блокировку и включить запрос, нажмите на панели сообщений кнопку Включить содержимое.
Примечание: При включении запроса на добавление включается также все остальное содержимое базы данных.
Если вы не видите панель сообщений, она может быть скрыта. Эту панель можно отобразить, если она не отключена. Если панель сообщений отключена, ее можно включить.
Запрос на добавление в access
Запросы в Access
Запросы в Access являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных. Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language). С помощью инструкций языка SQL реализуется любой запрос в Access.
Основным видом запроса является запрос на выборку. Результатом выполнения этого запроса является новая таблица, которая существует до закрытия запроса. Записи формируются путем объединения записей таблиц, на которых построен запрос. Способ объединения записей таблиц указывается при определении их связи в схеме данных или при создании запроса. Условия отбора, сформулированные в запросе, позволяют фильтровать записи, составляющие результат объединения таблиц.
В Access может быть создано несколько видов запроса:
- запрос на выборку — выбирает данные из одной таблицы или запроса или нескольких взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. Формирование записей таблицы результата производится в соответствии с заданными условиями отбора и при использовании нескольких таблиц путем объединения их записей;
- запрос на создание таблицы — выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице;
- запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.
Запросы в Access в режиме конструктора содержат схему данных, отображающую используемые таблицы, и бланк запроса, в котором конструируется структура таблицы запроса и условия выборки записей (рис. 4.1).
С помощью запроса можно выполнить следующие виды обработки данных:
- включить в таблицу запроса выбранные пользователем поля таблицы;
- произвести вычисления в каждой из полученных записей;
- выбрать записи, удовлетворяющие условиям отбора;
- сформировать на основе объединения записей взаимосвязанных таблиц новую виртуальную таблицу;
- сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, одновременно выполнить над другими полями группы статистические функции и в результат включить одну запись для каждой группы;
- создать новую таблицу базы данных, используя данные из существующих таблиц;
- произвести обновление полей в выбранном подмножестве записей;
- удалить выбранное подмножество записей из таблицы базы данных;
- добавить выбранное подмножество записей в другую таблицу.
Запросы в Access служат источниками записей для других запросов, форм, отчетов. С помощью запроса можно собрать полные сведения для формирования некоторого документа предметной области из нескольких таблиц, далее использовать его для создания формы — электронного представления этого документа. Если форма или отчет создаются мастером на основе нескольких взаимосвязанных таблиц, то для них в качестве источника записей автоматически формируется запрос.
Для закрепления смотрим видеоурок: