Как сделать запрос на добавление в access?

Создание запросов на добавление данных

Поэтому сначала создается запрос на выборку данных, в результат которого включаются те поля, которые должны составлять добавляемые записи, а также поля, в которых устанавливаются критерии отбора записей.

В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 1996 год и переносить их в другую таблицу так, чтобы таблица «Заказы» (Orders) содержала только актуальные данные. Для этого сначала создадим таблицу, которая будет хранить устаревшие данные:

  1. Раскройте список таблиц в окне базы данных и выделите таблицу «Заказы» (Orders).
  2. Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш + .
  3. Вставьте таблицу из буфера обмена, нажав комбинацию клавиш + . Появляется диалоговое окно Вставка таблицы (Paste Table As).
  4. В группе Параметры вставки (Paste Options) выберите переключатель Только структура (Structure Only).
  5. В поле имя таблицы (Table Name) введите строку: Заказы (архив). Нажмите кнопку ОК или клавишу .

В списке появляется новая таблица, пока пустая, т. к. мы скопировали только структуру таблицы «Заказы» (Orders). Теперь создадим запрос на добавление, который позволит перенести в новую таблицу данные из таблицы «Заказы».

  1. Раскройте список таблиц в окне базы данных и выделите в нем таблицу «Заказы».
  2. Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) инструментальной панели и выберите из раскрывшегося списка элемент Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите значение Конструктор (Design View). Появляется окно Конструктора запроса с таблицей «Заказы» в верхней части.
  3. Сначала создайте запрос на выборку нужных записей. Перетащите из списка полей таблицы «Заказы» все поля в строку бланка запроса Поле (Field).
  4. В строке Условие отбора (Criteria) столбца «ДатаРазмещения» введите выражение Between 101.01.961 And 131.12.961
  5. Запустите запрос на выборку, чтобы проверить, правильно ли отобраны записи. Оказались отобранными 152 записи.
  6. Выберите команду Запрос, Добавление (Query, Append) или щелкните левой кнопкой мыши по стрелке на кнопке Тип запроса (Query Type) и выберите из списка элемент Добавление (Append Query). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 8.6).
  7. В поле имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана таблица «Заказы (архив)», которую мы только что создали. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель в другой базе данных (Another Database) и затем в поле имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)

Рис. 8.6. Диалоговое окно Добавление

  1. В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 8.7). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.
  2. Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.

Если записи добавляются в таблицу, которая уже непуста, то наиболее часто встречающейся ошибкой при выполнении этого запроса является попытка вставить записи, у которых значение первичного ключа совпадает с ключами уже имеющихся в ней записей. Такие записи вставлены не будут, будет только выдано сообщение об их количестве.

Рис. 8.7. Бланк запроса на добавление

  1. Сохраните запрос в базе данных, присвоив ему имя Копирование заказов. Обратите внимание на значок в списке запросов, соответствующий запросу на добавление. Как и в любом запросе на изменение, он содержит восклицательный знак, но отличается от значка запроса на создание таблицы.

Добавление записей в таблицу с помощью запроса на добавление

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

В этой статье описывается процедура создания и выполнения запроса на добавление. Запрос на добавление предназначен для добавления новых записей в существующую таблицу с использованием данных из других источников.

Если вам нужно изменить данные в существующем наборе записей (например, обновить значение поля), можно использовать запрос на обновление. Если вам нужно создать новую таблицу из набора данных или объединить две таблицы в одну, можно использовать запрос на создание таблицы. Дополнительные сведения о запросах на обновление и запросах на создание таблиц, а также общие сведения о других способах добавления записей в базу данных или изменении существующих данных можно найти в разделе » см .

В этой статье

Запрос на добавление обеспечивает выборку записей из одного или нескольких источников данных и копирование выбранных записей в существующую таблицу.

Предположим, вы получили базу данных с таблицей потенциальных клиентов и у вас уже есть таблица с такими данными в существующей базе данных. Чтобы данные хранились в одной таблице, вы решаете скопировать их из новой базы данных в существующую. Чтобы не вводить новые данные вручную, записи можно скопировать с помощью запроса на добавление.

Читать еще:  Как сделать галочку в access?

Преимущества использования запроса на добавление

Используя запрос для копирования данных, можно выполнять указанные ниже операции.

Добавление нескольких записей одновременно. При копировании данных вручную обычно приходится несколько раз копировать и вставлять записи. Используя запрос, можно выбрать все нужные данные одновременно, а затем скопировать их.

Просмотр выбранных данных перед копированием. Можно просмотреть выбранные данные в режиме таблицы и внести необходимые изменения перед их копированием. Это особенно удобно, если запрос содержит условия или выражения и вам необходимо несколько попыток для правильного выбора данных. Запрос на добавление нельзя отменить. Если сделана ошибка, придется либо восстанавливать базу данных с помощью резервной копии, либо исправлять ошибку вручную или с помощью запроса на удаление.

Уточнение выбора с помощью условий. Например, может потребоваться добавить записи только для клиентов, живущих в конкретном городе.

Добавление записей в целевую таблицу, в которой отсутствуют некоторые поля из источников данных. Предположим, что в существующей таблице клиентов 11 полей, а в новой таблице, из которой требуется скопировать данные, — только девять из них. Для копирования данных из девяти совпадающих полей можно использовать запрос на добавление, а два несовпадающих поля можно оставить пустыми.

Основные этапы создания запроса на добавление

Создание запроса на добавление включает следующие основные этапы.

Создание запроса на выборку. Сначала выделите данные, которые вы хотите скопировать. При необходимости в запрос на выборку можно вносить изменения и выполнять его до тех пор, пока не будут выбраны нужные данные для копирования.

Преобразование запроса на выборку в запрос на добавление. Когда выборка будет готова, можно изменить тип запроса для Добавление.

Выбор целевых полей для каждого столбца в запросе на добавление. В некоторых случаях Access выбирает целевые поля автоматически. Эти поля можно настроить или при необходимости выбрать самостоятельно.

Предварительный просмотр и выполнение запроса на добавление записей. Перед добавлением записей можно переключиться в режим таблицы для предварительного просмотра добавляемых записей.

Важно: Запрос на добавление нельзя отменить. Рекомендуется создать резервную копию базы данных или целевой таблицы.

Создание и выполнение запроса на добавление

В этой статье

Этап 1. Создание запроса на выборку записей для копирования

Откройте базу данных с записями, которые нужно скопировать.

На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

Откроется окно конструктора запроса и диалоговое окно Добавление таблицы.

Дважды щелкните таблицы или запросы с записями, которые нужно скопировать, а затем нажмите кнопку Закрыть.

Таблицы или запросы появляются в виде одного или нескольких окон в конструкторе запросов. В каждом окне выводятся поля таблицы или запроса. На рисунке показана типичная таблица в окне конструктора запросов.

1. Таблица «Основные средства» в окне конструктора запросов

2. Бланк запроса

Дважды щелкните каждое поле, которое требуется добавить. Выбранные поля появятся в строке Поле бланка запроса.

Типы данных полей исходной таблицы должны быть совместимы с типами данных полей в конечной таблице. Текстовые поля совместимы с большинством других типов полей. Числовые поля совместимы только с числовыми полями. Например, можно добавить числа в текстовое поле, но нельзя добавить в числовое поле текст.

Кроме того, можно использовать в качестве поля выражение (например, =Date() для автоматического возврата текущей даты), а также настраивать данные выборки в бланке с помощью выражений, содержащих поля таблицы или запроса. Например, если в таблице назначения есть поле, в котором хранится четырехзначный год, а в исходной таблице — регулярное поле даты и времени, можно использовать функцию DatePart с исходным полем, чтобы выбрать только год.

Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (*) в верхней части списка полей таблицы. На рисунке показан бланк со всеми добавленными полями.

При необходимости можно ввести одно или несколько условий в строке Условие отбора бланка. В приведенной ниже таблице представлены некоторые примеры условий, а также результаты их применения.

Запрос на добавление записей

Дата добавления: 2015-07-04 ; просмотров: 5503 ; Нарушение авторских прав

Схема построения запроса на добавление записей имеет много общего с разработкой запросов на создание таблицы. Записи из результирующего набора могут быть добавлены как в таблицу уже открытой базы данных, так и в какую-либо другую базу данных Access. Безусловно, структура запроса должна соответствовать структуре таблицы-получателя. Чтобы продемонстрировать, каким образом создается запрос на добавление записей в таблицу, создадим в базе данных таблицу, в которой указаны товары, которые должны подвести на склад (рис.15).

Чтобы построить запрос на добавление записей, выполните следующее.

1. Создайте новый запрос. В нашем примере бланк запроса включает три поля таблицы ОжидаемыеТовары (рис. 16).

2. Чтобы преобразовать запрос на выборку в запрос на добавление, щелкните на кнопке Добавление груп­пы Тип запроса. На экране появится диалоговое окно Добавление.

3. Выберите из раскрывающегося списка поля имя таблицы название той табли­цы, в которую необходимо добавить записи новой таблицы (для нашего примера это таблица Товары, как показано на рис. 17), затем примите пред­ложенную по умолчанию опцию в текущей базе данных и щелкните на кнопке ОК.

В бланке запроса теперь появилась новая строка — Добавление (рис. 18).

При условии, что имена полей исходной таблицы, указанные в бланке запроса, совпадают с именами тех полей, куда должны быть добавлены данные, программа Access по умолча­нию вносит эти имена в ячейки строки Добавление.

4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, какое число записей будет добавлено в таблицу. Щелкните на кнопке Да, чтобы завершить выполнение запроса.

5. Если необходимо, сохраните запрос.

6. Чтобы проверить полученные результаты, обратитесь к категории Таблицы облас­ти переходов и откройте целевую таблицу Товары.

Запросы на удаление

Как и следует из названия, главное и единственное назначение запросов такого типа — удалять из таблиц (или нескольких таблиц) записи, соответствующие определен­ному критерию. Именно записи, а не значения отдельных полей, для удаления которых можно воспользоваться запросом на обновление. Применение запросов на удаление обя­зывает быть предельно внимательным, поскольку удаление записей выполняется без возможности их последующего восстановления.

Читать еще:  Как сделать перекрестный запрос в access?

Порядок действий при создании запроса на удаление аналогичен приводимым выше процедурам для других запросов на изменение.

1. Создайте запрос на выборку, результирующими записями которого должны стать строки исходной таблицы, подлежащие удалению.

2. Перейдя в режим таблицы, убедитесь, что в результирующей таблице отображены именно те данные, которые следует удалить.

3. Вернитесь в режим конструктора запросов и воспользуйтесь для выбора типа за­проса (на удаление записей) кнопкой Удаление группы Тип запроса. Запрос на выборку будет преобразован в запрос на удаление, а в бланке запроса вместо стро­ки Сортировка появится новая строка — Удаление. Простой пример бланка за­проса на удаление приведен на рис. 18.

4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, сколько записей будет удалено и запросит подтверждение операции. Щелк­ните на кнопке Да, если вы готовы расстаться с указанными записями.

Таков сценарий удаления записей из одной, не связанной с другими таблицы. Однако на практике таблицы базы данных, как правило, связаны между собой, и наличие этих связей в схеме базы данных обязательно учитывается программой Access при попытке удалить записи одной из связанных таблиц. Напомним, что если между таблицами определено от­ношение «один ко многим» и в диалоговом окне Изменение связей установлен флажок опции каскадное удаление связанных записей, при удалении записи в главной таблице автоматически будут удалены все связанные записи подчиненной таблицы, даже если ее поля не фигурировали в бланке запроса на удаление.

Если флажок каскадного удаления не установлен, но для данного отношения между таблицами опция Обеспечение целостности данных активизирована, удалить записи из родительской таблицы не удастся до тех пор, пока не будут удалены записи из подчиненной табли­цы. При попытке удаления записей программа Access выдает соответствующее предупреждение о наличии связанных записей в подчиненной таблице.

Создание запроса на добавление (или на создание таблицы)

Приведенные далее действия описывают процесс создания запроса на добавление или на создание таблицы. Вы переносите записи из таблицы Contacts (контакты) БД Marketing.accdb в таблицу PotentialClients (потенциальные клиенты) БД Sales.accdb. (Вы можете найти обе БД на странице «Missing CD» на Web-сайте www.missingmanuals.com.)

1. Откройте БД-источник.

В данном примере это БД Marketing.accdb, содержащая контактную информацию.

2. Создайте новый запрос, выбрав на ленте Создание > Другие > Конструктор запросов

(Create > Other > Query Design).

На экране появится диалоговое окно Добавление таблицы (Show Table).

3. С помощью этого окна добавьте таблицу-источник, содержащую записи, которые вы хотите скопировать. Затем для закрытия окна щелкните мышью кнопку Закрыть (Close).

В данном примере используется таблица Contacts.

4. Измените тип запроса на запрос на добавление, выбрав на ленте Работа с запросами | Конструктор > Тип запроса > Тип запроса: добавление (Query Tools | Design > Query Type > Append) (или выберите Работа с запросами | Конструктор > Тип запроса >

Тип запроса: создание таблицы (Query Tools ¦ Design > Query Type > Make Table) для превращения его в запрос на создание таблицы).

Конечная таблица (таблица PotentialClients в БД Sales.accdb) уже существует. По этой причине применяется запрос на добавление вместо запроса на создание таблицы.

Когда вы измените тип запроса на запрос на добавление или на создание таблицы, программа Access попросит указать конечную таблицу (место, куда вы будете копировать записи), как показано на рис. 8.6.

Рис. 8.6. Программа Access хочет знать, куда вы собираетесь перенести копируемые записи. Таблицу можно выбрать из удобного раскрывающегося списка. Если вы копируете данные из одной БД в другую, выберите переключатель в другой базе данных, щелкните мышью кнопку Обзор… для выбора файла БД и затем кнопку ОК

5. Если вы хотите переместить записи в другую БД, выберите переключатель в другой базе данных, затем нажмите кнопку Обзор… Укажите файл вашей БД и нажмите кнопку ОК, чтобы подтвердить ваш выбор.

Вы перемещаете записи в БД Sales.accdb.

Если вы планируете повторное использование нового запроса, не меняйте место хранения конечной БД. Если конечный файл переместить в другую папку или на другое устройство (или переименовать его), программа Access не сможет найти его во время выполнения запроса и выдаст сообщение об ошибке.

6. В поле имя таблицы (Table Name) укажите имя таблицы, в которую вы хотите перенести записи.

Если создается запрос на добавление, выбранная таблица должна где-то храниться — либо в файле БД, либо в другом доступном вам месте. Ее можно выбрать из раскрывающегося списка имя таблицы.

Если вы формируете запрос на создание таблицы, нужно ввести имя таблицы для новой таблицы, и программа Access создаст ее во время выполнения запроса. В данном примере вы переносите записи в таблицу PotentialCIients.

7. Щелкните мышью кнопку ОК для того, чтобы закрыть диалоговое окно Добавление или Создание таблицы.

8. Теперь добавьте поле (или поля), которое вы хотите скопировать из таблицы-источника.

Напоминаю о том, что вы не должны копировать все поля. В данном примере нужно добавить только поля FirstName и LastName.

9. Если создается запрос на добавление, вставьте имена полей конечной таблицы в строку Добавление (Append To).

В этом примере задайте в поле Добавление для FirstName имя F_Name. В этом случае программа Access скопирует информацию из поля FirstName в таблице-источнике в поле F_Name конечной таблицы (рис. 8.7). Аналогично задайте в поле LastName для добавления поле L_Name.

Рис. 8.7. Данный запрос на добавление переносит информацию из таблицы Contacts в БД Marketing в таблицу PotentialClients БД Sales. Поскольку в обеих таблицах используются поля ID с типом данных Счетчик, номера ID в скопированных записях будут отличаться от номеров ID в исходных записях. (Если вас это не устраивает, нужно скопировать номера ID типа Счетчик таблицы Contacts в обычный числовой столбец таблицы PotentialClients — такой, в котором не используется тип данных Счетчик.)

10. Если вы хотите скопировать только некоторые записи из таблицы-источника, задайте необходимые условия отбора.

Читать еще:  Как сделать exe файл из access?

Как и в любых других секциях программы Access, эти условия отбора определяют, какие записи копируются из таблицы-источника. Для задания условия заполните строку Условие отбора соответствующего поля таблицы.

Если вы добавляете условие отбора в запрос на добавление, но не хотите копировать значение этого поля в конечную таблицу, оставьте пустым поле Добавление.

Если поле с условием отбора применяется в запросе на создание таблицы, но вы не хотите копировать его значение в новую таблицу, сбросьте флажок Вывод на экран для этого поля.

11. Щелкните правой кнопкой мыши заголовок вкладки и затем выберите команду Режим таблицы для просмотра строк, на которые воздействует ваш запрос.

Этот шаг позволяет просмотреть строки, которые вы собираетесь копировать.

12. Если вы убедились в том, что все верно, вернитесь в Конструктор и выберите на ленте Работа с запросами j Конструктор > Результаты > Выполнить для переноса ваших записей (Query Tools ¦ Design > Results > Run).

Программа Access предупредит вас об изменении, которое собирается сделать. Щелкните мышью кнопку Да для копирования записей. Access не выведет на экран скопированные записи — для того, чтобы проверить их, нужно просмотреть лист данных с конечной таблицей.

В настоящий момент у вас одни и те же записи в двух местах — в таблице-источнике и в конечной таблице. Мы сможете продолжить работу и с помощью запроса на удаление очистить таблицу-источник, как описано в разд. «Запросы на удаление» далее в этой главе,

13. Для сохранения запроса нажмите комбинацию клавиш + (или закройте вкладку запроса). Вам нужно задать имя запроса.

Если вы не собираетесь повторно использовать запрос, подумайте о его удалении.

Получение начальных значений типа Счетчик, отличных от 1

Ведущие специалисты Access применяют запросы в одном из самых изощренных искусственных приемов: замене в поле таблицы с типом Счетчик начального значения числом, отличающимся от 1.

Как вы узнали в главе 2, программа Access всегда генерирует значения типа Счетчик, начиная с 1. (Единственное исключение — применение случайных чисел или кодов репликаций, два редких варианта, описанных в разд. «Применение поля типа Счетчик без раскрытия реального размера вашей таблицы» главы 2.) Но существует множество причин, вызывающих желание изменить такое поведение программы. Например, компании Boutique Fudge хочется начать нумерацию своих клиентов с 1000, а номеров товаров — с 5000, или начать нумеровать свои заказы с 10 000. Эти схемы нумерации часто облегчают бухгалтерский учет. Они позволяют сохранять постоянным количество цифр в значениях типа Счетчик, помогают разделить коды в двух разных таблицах и не смущаться, сообщая клиенту о том, что он сделал заказ номер 1.

К счастью, существует (немного неуклюжий) способ обмануть систему и заставить Access начать отсчет с любого нужного вам числа. Для того чтобы сделать то, что вы не можете сделать сами, применяется запрос на добавление. Просто вставляется запись с заданным значением типа Счетчик. После того как запись создана, программа Access наращивает значения, начиная со вставленного вами значения. Таким образом, если вы добавили запись типа Счетчик со значением 999, Access присвоит следующей записи значение 1000 и т. д.

Вот как это делается.

1. Создайте новую таблицу (Создание > Таблицы > Конструктор (Create > Tables > Table Design)).

Эта таблица будет храниться всего несколько минут.

2. Добавьте одно поле. Присвойте ему то же имя, что и у поля с типом данных Счетчик в таблице, которую вы пытаетесь изменить.

Обычно у него имя Код (ID).

3. Измените тип данных поля на Числовой (вместо Счетчик) и убедитесь в том, что размер поля — Длинное целое (Long Integer) (стандартный выбор).

4. Щелкните правой кнопкой мыши заголовок таблицы и выберите Режим таблицы.

Сохраните таблицу, когда программа Access напомнит об этом, но не беспокойтесь о ее имени, имя Табляца1 вполне подходит. Когда Access предложит создать первичный ключ, щелкните мышью кнопку Нет.

5. В Режиме таблицы введите в поле с типом данных Числовой временной таблицы значение, на 1 меньшее того, которое вы хотите использовать в качестве начального в поле с типом данных Счетчик.

Если вы хотите начать со значения 100 в поле с типом Счетчик, введите в поле с типом Числовой значение 99. Закройте таблицу.

6. Создайте новый запрос (Создание > Другие > Конструктор запросов (Create > Other > Query Design)).

В появившемся диалоговом окне Добавление таблицы (Show Table) выберите созданную вами временную таблицу (Таблица!.) и щелкните мышью кнопку Закрыть (Close).

7. Выберите на ленте Работа с запросами J Конструктор > Тип запроса > Тип запроса:

добавление (Query Tools | Design > Query Type > Append) для изменения типа запроса на запрос на добавление.

Когда программа Access запрашивает, в какую таблицу вы хотите добавить запись, выберите таблицу с полем типа Счетчик, значения которого вы хотите попробовать изменить.

8. Дважды щелкните кнопкой мыши поле, которое вы добавили в вашу таблицу (например Код (ID)).

Программа Access задаст в строке Добавление то же имя, это как раз то, что надо.

9. Выберите на ленте Работа с запросами | Конструктор > Результаты > Выполнить

(Query Tools | Design > Results >Run).

Щелкните мышью кнопку Да, когда Access предупредит вас о том, что собирается добавить запись.

10. Откройте таблицу, которую вы только что обновили, и удалите только что вставленную запись.

Начиная с этого момента и далее, значения типа Счетчик будут увеличиваться, начиная с добавленного значения.

11. Удалите временную таблицу, созданную в пункте 1, поскольку она вам больше не нужна.

У этого метода есть несколько ограничений. А именно, если у вашей таблицы строгие правила верификации — например, у одного или нескольких полей в свойстве Обязательное поле задано значение Да — Access не разрешит вам вставить новую запись с помощью запроса на добавление. В этой ситуации нужно либо отключить правила верификации (временно установив для всех полей в свойстве Обязательное поле значение Нет), либо добавить обязательные поля с корректными значениями в вашу временную таблицу.

Ссылка на основную публикацию
Adblock
detector