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

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

Существует несколько способов создания поискового поля, самый распространённый из них – при помощи мастера для элемента управления «Поле со списком».

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

Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):

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

Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):

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

Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».

На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».

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

Макрос состоит всего из двух команд:

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

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

Форма с полем для поиска готова. Для того, чтобы найти нужную нам запись с конкретным человеком, надо щёлкнуть мышкой внутри поля поиска. Потом можно вводить фамилию, имя и отчество.

По мере введения символов программа будет автоматически предлагать подходящие записи. Когда выбрана нужная запись, можно нажать клавишу «Enter» или «Tab». Курсор будет автоматически переведён в область данных формы на нужную запись.

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

Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:

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

Ситуация такова:
Есть база .мдб и в ней таблица. В таблице были удалены некоторые записи и в поле с автосчётчиком остались от этого “пробелы”.

Я хочу чтобы в таблице записи снова стали по порядку.

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

Я не знаю способа, как можно было бы скопировать таблицу полностью, с сохранением всех не только записей, но и свойств, заданных из среды MS Access, таких как Format, Lookup… Как задать эти свойства при создании базы програмно, я тоже не знаю.

Я пробовал копировать таблицу так(других способов не знаю):

SELECT * INTO ИмяТабл(куда) FROM ИмяТабл(откуда)
В итоге получилась таблица, содержащая те же данные, но в её свойствах Format и lookup совсем другие значения, отличные от оригинала. Например, в lookup было checkbox, а вновой таблице стало textbox. Свойство Format было YesNo, а стало пустым.

Подскажите другие способы скопировать таблицу, а также, как задать вышеуказанные свойства при создании базы програмно (DAO).

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

В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 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. Сохраните запрос в базе данных, присвоив ему имя Копирование заказов. Обратите внимание на значок в списке запросов, соответствующий запросу на добавление. Как и в любом запросе на изменение, он содержит восклицательный знак, но отличается от значка запроса на создание таблицы.