В этой статье описывается процедура создания и выполнения запроса на добавление. Запрос на добавление предназначен для добавления новых записей в существующую таблицу с использованием данных из других источников.
Если необходимо изменить данные в существующем наборе записей, например обновить значение поля, можно использовать запрос на обновление. Если необходимо создать новую таблицу из набора данных или объединить две таблицы в одну новую таблицу, можно использовать запрос на создание таблицы. Дополнительные сведения о запросах на обновление или запросах к таблицам, а также общие сведения о других способах добавления записей в базу данных или изменения существующих данных см. в разделе См. также .
В этой статье
Обзор
Запрос на добавление обеспечивает выборку записей из одного или нескольких источников данных и копирование выбранных записей в существующую таблицу.
Предположим, вы получили базу данных с таблицей потенциальных клиентов и у вас уже есть таблица с такими данными в существующей базе данных. Чтобы данные хранились в одной таблице, вы решаете скопировать их из новой базы данных в существующую. Чтобы не вводить новые данные вручную, записи можно скопировать с помощью запроса на добавление.
Преимущества использования запроса на добавление
Используя запрос для копирования данных, можно выполнять указанные ниже операции.
-
Добавление нескольких записей одновременно. При копировании данных вручную обычно приходится несколько раз копировать и вставлять записи. Используя запрос, можно выбрать все нужные данные одновременно, а затем скопировать их.
-
Просмотр выбранных данных перед копированием. Можно просмотреть выбранные данные в режиме таблицы и внести необходимые изменения перед их копированием. Это особенно удобно, если запрос содержит условия или выражения и вам необходимо несколько попыток для правильного выбора данных. Запрос на добавление нельзя отменить. Если сделана ошибка, придется либо восстанавливать базу данных с помощью резервной копии, либо исправлять ошибку вручную или с помощью запроса на удаление.
-
Уточнение выбора с помощью условий. Например, может потребоваться добавить записи только для клиентов, живущих в конкретном городе.
-
Добавление записей в целевую таблицу, в которой отсутствуют некоторые поля из источников данных. Предположим, что в существующей таблице клиентов 11 полей, а в новой таблице, из которой требуется скопировать данные, — только девять из них. Для копирования данных из девяти совпадающих полей можно использовать запрос на добавление, а два несовпадающих поля можно оставить пустыми.
Основные этапы создания запроса на добавление
Создание запроса на добавление включает следующие основные этапы.
-
Создание запроса на выборку. Сначала выберите данные, которые нужно скопировать. При необходимости в запрос на выборку можно вносить изменения и выполнять его до тех пор, пока не будут выбраны нужные данные для копирования.
-
Преобразование запроса на выборку в запрос на добавление. Когда выборка будет готова, можно изменить тип запроса для Добавление.
-
Выбор целевых полей для каждого столбца в запросе на добавление. В некоторых случаях Access выбирает целевые поля автоматически. Эти поля можно настроить или при необходимости выбрать самостоятельно.
-
Предварительный просмотр и выполнение запроса на добавление записей. Перед добавлением записей можно переключиться в режим таблицы для предварительного просмотра добавляемых записей.
Важно: Запрос на добавление нельзя отменить. Рекомендуется создать резервную копию базы данных или целевой таблицы.
Создание и выполнение запроса на добавление
В этой статье
Этап 1. Создание запроса на выборку записей для копирования
-
Откройте базу данных с записями, которые нужно скопировать.
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
Дважды щелкните таблицы или запросы с записями, которые нужно скопировать, а затем нажмите кнопку Закрыть.
Таблицы или запросы появляются в виде одного или нескольких окон в конструкторе запросов. В каждом окне выводятся поля таблицы или запроса. На рисунке показана типичная таблица в окне конструктора запросов.
1. Таблица "Основные средства" в окне конструктора запросов
2. Бланк запроса
-
Дважды щелкните каждое поле, которое требуется добавить. Выбранные поля появятся в строке Поле бланка запроса.
Типы данных полей исходной таблицы должны быть совместимы с типами данных полей в конечной таблице. Текстовые поля совместимы с большинством других типов полей. Числовые поля совместимы только с числовыми полями. Например, можно добавить числа в текстовое поле, но нельзя добавить в числовое поле текст.
Кроме того, можно использовать в качестве поля выражение (например, =Date() для автоматического возврата текущей даты), а также настраивать данные выборки в бланке с помощью выражений, содержащих поля таблицы или запроса. Например, если в целевой таблице есть поле, в котором хранится четыре цифры года, а в исходной таблице — обычное поле даты и времени, можно использовать функцию DatePart с исходным полем, чтобы выбрать только год.
Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (*) в верхней части списка полей таблицы. На рисунке показан бланк со всеми добавленными полями.
-
При необходимости можно ввести одно или несколько условий в строке Условие отбора бланка. В приведенной ниже таблице представлены некоторые примеры условий, а также результаты их применения.
Условие
Результат
> 234
Возвращает все числа больше 234. Чтобы найти все числа меньше 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'.
Not "Германия"
Находит все записи, в которых содержимое поля не соответствует значению "Германия". Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова "Германия", например "Германия (евро)" или "Европа (Германия)".
Not "Т*"
Находит все записи, кроме тех, которые начинаются с буквы "Т". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Not "*т"
Находит все записи, которые не оканчиваются на букву "т". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
In(Канада,Великобритания)
Находит все записи в списке со словами "Канада" или "Великобритания".
Like "[А-Г]*"
Находит в поле с типом данных "Текстовый" все записи, начинающиеся с букв "А-Г". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like "*ар*"
Находит все записи, которые содержат сочетание букв "ар". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like "Григорий Верны?"
Находит все записи, начинающиеся с имени "Григорий" и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии "Верный", а последняя буква неизвестна (на это указывает вопросительный знак). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_).
#2/2/2017#
Находит все записи за 2 февраля 2017 г. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки. Например: '02.02.2017'.
< Date() - 30
Возвращает все даты, которые более чем на 30 дней раньше текущей даты.
Date()
Возвращает все записи, содержащие текущую дату.
Between Date( ) And DateAdd("M", 3, Date( ))
Возвращает все записи с датой, которая находится между текущей датой и датой, которая на 3 месяца позже текущей.
Is Null
Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Is Not Null
Возвращает все записи, содержащие непустое значение.
""
Возвращает все записи, содержащие строку нулевой длины. Такие строки обычно используются, когда поле обязательно должно иметь значение, но это значение еще неизвестно. Например, поле может содержать номер факса, но некоторые заказчики могут не иметь устройств факсимильной связи. В этом случае вместо номера факса можно ввести пару двойных кавычек без пробела между ними ("").
-
На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить .
-
Убедитесь, что запрос вернул записи, которые нужно скопировать. Если необходимо добавить или удалить поля из запроса, переключитесь обратно в режим конструктора и добавьте их, как указано в описании предыдущего этапа, или выберите ненужные поля и нажмите клавишу DELETE, чтобы удалить их из запроса.
Этап 2. Преобразование запроса на выборку в запрос на добавление
-
На вкладке Главная в группе Представление щелкните элемент Представление, а затем — Режим конструктора.
-
На вкладке Конструктор запросов в группе Тип запроса нажмите кнопку Добавить.
Откроется диалоговое окно Добавление.
-
Укажите, куда следует добавить записи: в таблицу текущей базы данных или в таблицу какой-либо другой базы данных.
Выполните одно из указанных ниже действий.
-
В диалоговом окне Добавление установите переключатель в текущей базе данных, выберите целевую таблицу в поле со списком Имя таблицы и нажмите кнопку ОК.
-или-
-
В диалоговом окне Добавление установите переключатель в другой базе данных.
-
В поле Имя файла введите расположение и имя целевой базы данных.
-
В поле со списком Имя таблицы введите имя целевой таблицы и нажмите кнопку ОК.
-
Этап 3. Выбор целевых полей
Способ выбора целевых полей зависит от того, как был создан запрос на выборку на этапе 1.
Действие пользователя |
Действие Access |
---|---|
Добавление всех полей из исходной таблицы или запроса |
Добавляет все поля целевой таблицы в строку Добавить к бланка запроса. |
Добавление отдельных полей к запросу или использованным выражениям; названия полей в исходной и конечной таблицах совпадают |
Автоматически добавляет совпадающие целевые поля в строку Добавить к в запросе. |
Добавление отдельных полей или использованных выражений; какие-либо имена в исходной и целевой таблицах не совпадают |
Добавляет совпадающие поля и оставляет несовпадающие поля пустыми. |
Если Access оставляет поля пустыми, можно щелкнуть ячейку в строке Добавить к и выбрать целевое поле.
На приведенном рисунке показано, как щелкнуть ячейку в строке Добавление записей в таблицу и выбрать конечное поле.
Примечание: Если целевое поле оставлено пустым, запрос не добавит данных к этому полю.
Этап 4. Предварительный просмотр и выполнение запроса на добавление
-
Для предварительного просмотра внесенных изменений переключитесь в режим таблицы.
Совет: Для быстрого переключения режимов щелкните правой кнопкой мыши вкладку в верхней части запроса, а затем выберите нужный режим.
-
Вернитесь в режим конструктора и нажмите кнопку Выполнить , чтобы добавить записи.
Примечание: При выполнении запроса, который возвращает большое количество данных, может появится сообщение об ошибке, в котором будет сказано, что отменить запрос не удастся. Попробуйте увеличить ограничение сегмента памяти до 3 МБ, чтобы выполнить запрос до конца.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если при попытке выполнения запроса на добавление ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Чтобы отменить блокировку и включить запрос, нажмите на панели сообщений кнопку Включить содержимое.
Примечание: При включении запроса на добавление включается также все остальное содержимое базы данных.
Если вы не видите панель сообщений, она может быть скрыта. Эту панель можно отобразить, если она не отключена. Если панель сообщений отключена, ее можно включить.
См. также
Создание и выполнение запроса на обновление