Access конструктор запросов обновление

Обновлено: 21.05.2024

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

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

· Запрос на добавление записей. Предназначен для добавления в таблицы новых записей.

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

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

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

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

2.4.2. Перетащите все поля таблицы Студент, в столбцы бланка запроса, а также Назв_факиз таблицы Факультет. Эти поля будут использованы для создания новой таблицы Экономфак.

2.4.3. Задайте условие отбора тех записей таблицы Студент, для которых Код_фак равен 1.

2.4.4. Проверьте корректность запроса, переключившись в Режим таблицы.

2.4.5.Снова переключитесь в режим конструктора, используя команду Конструктор из контекстного меню вкладки (с именем запроса) – Запрос1 окна БД Успеваемость.


2.4.6. Выполните команду контекстная вкладка Работа с запросами – Конструктор – группа Тип запроса – кнопка Создание таблицы .

2.4.7. В поле имя таблицы диалогового окна Создание таблицы введите имя новой таблицы Экономфак.

2.4.8. Выберите параметр Текущая база данных, если он еще не выбран, и нажмите кнопку ОК для создания новой таблицы.


2.4.9. Запустите запрос, используя команду: Запрос - .

Откроется диалоговое окно Параметры системы безопасности Microsoft Office.

  • Установите переключатель в положение Включить это содержимое и нажмите кнопку ОК.
  • Снова запустите запрос.

2.4.10. Перейдите на вкладку Таблицы окна базы данных.

2.4.11. В списке таблиц выполните двойной щелчок на имени новой таблицы Экономфак.

2.4.12. Проанализируйте результаты выполнения запроса.

2.4.13. Закройте запрос на создание таблицы, предварительно сохранив его.

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

При совместном доступе к базе данных по сети Microsoft Access обновляет информацию через заданные промежутки времени. Чтобы просмотреть последние данные, обновите записи в представлении таблицы или формы, а на вкладке "Главная" нажмите кнопку "Обновить >обновить". В процессе обновления обновляются существующие данные в таблице или форме, а также не переупоряджаются записи, не отображаются новые записи, а также удаляются все удаленные записи или записи, которые больше не соответствуют указанным условиям. Для более детального или тщательного обновления используйте макрос для повторного получения данных.

Примечание: Запуск повторного процесса может быть отнимает много времени в зависимости от размера наборов записей.

Выберите нужное действие:

Обновление данных

Выполните одно из следующих действий:

Чтобы обновить записи в представлении таблицы или формы, на вкладке "Главная" в группе "Записи" нажмите кнопку "Обновить все" и выберите "Обновить".

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

Настройка интервала обновления

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

В левой области области "Outspace" нажмите кнопку "Параметры".

В левой области диалогового окна "Параметры Access" нажмите кнопку "Дополнительные параметры".

В области справа в области "Дополнительные" укажите значение для интервала обновления (с).

Повторное сбор данных с помощью макроса

Если вы хотите, чтобы данные автоматически повторно включались в событие, можно создать макрос и прикрепить его к событию. Предположим, например, что каждый раз, когда форма получает форму с фокус, необходимо повторно получить данные в фокус. Чтобы создать макрос и прикрепить его к событию On Got Focus формы, с помощью следующей процедуры:

Откройте вкладку Создание и в группе Другие нажмите кнопку Макрос. Если она недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса, а затем нажмите кнопку Макрос.

Щелкните стрелку рядом с символом зеленого знака "плюс" (+) и выберите "Повторное".

Сохраните макрос с именем "Повторноеиспользование", а затем закроем конструктор макроса.

Откройте форму, которую вы хотите Конструктор. Если лист свойств не отображается, нажмите F4, чтобы отобразить его.

Убедитесь, что выбрана сама форма. Затем на окне свойств щелкните вкладку "Событие".

На вкладке "Событие" щелкните стрелку в свойстве "Фокус в фокусе" и выберите имя макроса — "Requery".

Повторное сбор данных с помощью кода

Кроме того, вы можете использовать код для автоматического повторного обработки данных. Предположим, что вам нужно повторно проговоировать данные в форме каждый раз, когда фокус получается в форме. Чтобы создать модуль и прикрепить его к событию On Got Focus формы, с помощью следующей процедуры:

Откройте форму в конструкторе. Если лист свойств не отображается, нажмите F4, чтобы отобразить его.

Убедитесь, что выбрана сама форма. Затем на окне свойств щелкните вкладку "Событие".

На вкладке "События" в свойстве "Фокус" нажмите кнопку "Построить" .

В диалоговом окне "Выбор построитель" нажмите кнопку "Построитель кода".

В редакторе Visual Basic откроется новый модуль.

Введите me.Requery,а затем закроем Visual Basic редактора.

Данные повторного получения в веб-приложении Access

Запросы веб-приложения Access будут запускаться на сервере. Для повторного получения данных в веб-приложении Access необходимо использовать макрос RequeryRecords. Для этого макроса требуется текущий набор записей.

Откройте форму, нажмите кнопку "Действия"и выберите "Текущая".

В каталоге действийнажмите кнопку RequeryRecords. Если оставить пустым where= (Where=), дополнительная фильтрация результатов не выполняется, а orderBy= оставлен пустым, сортировка не выполняется.

Запросы в Access

Запросы в Access являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных. Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language). С помощью инструкций языка SQL реализуется любой запрос в Access.

Основным видом запроса является запрос на выборку. Результатом выполнения этого запроса является новая таблица, которая существует до закрытия запроса. Записи формируются путем объединения записей таблиц, на которых построен запрос. Способ объединения записей таблиц указывается при определении их связи в схеме данных или при создании запроса. Условия отбора, сформулированные в запросе, позволяют фильтровать записи, составляющие результат объединения таблиц.

В Access может быть создано несколько видов запроса:

  • запрос на выборку — выбирает данные из одной таблицы или запроса или нескольких взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. Формирование записей таблицы результата производится в соответствии с заданными условиями отбора и при использовании нескольких таблиц путем объединения их записей;
  • запрос на создание таблицы — выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице;
  • запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.

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

Запросы в Access

С помощью запроса можно выполнить следующие виды обработки данных:

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

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

Последняя группа макрокоманд в рассматриваемой категории связана с обновлением данных в активных формах, таблицах и запросах. Если несколько человек в сети одновременно изменяют данные, то формы и таблицы у конкретного пользователя могут не отражать актуальных данных. Для того чтобы отображаемые данные соответствовали текущему состоянию базы данных, их необходимо обновить с помощью команды Записи, Обновить (Record, Refresh) (см. разд.Работа с записями гл. 2).

Похожая ситуация возникает даже в однопользовательском режиме, если в форме используется поле со списком, источником данных для которого является таблица или запрос. Если в исходную таблицу были добавлены записи, то в поле со списком они автоматически не появятся — нужно повторно выполнить запрос. Кроме полей со списком, к элементам управления, требующим обновления отображаемых данных, относятся также списки и элементы управления подчиненной формы, объекты OLE и вычисляемые элементы управления, содержащие статистические функции по подмножеству записей, такие как DLookUp () или DSum ().

Для того чтобы выполнить обновление записей в формах, таблицах или элементах управления, используются макрокоманды Обновление(Requery), ПоказатьВсеЗаписи(ShowAllRecords) И ОбновитьОбъект(RepaintObject).

Макрокоманда Обновление (Requery) обновляет данные в объекте базы данных путем повторного просмотра источника данных. Макрокоманда имеет один аргумент, содержащий имя объекта, который следует обновить. Если обновляется активный объект, например форма, то поле аргумента следует оставить пустым. При этом макрокоманда будет повторно выполнять запрос, указанный в свойстве Источник данных (RecordSource) этой формы.

Рассмотрим пример использования макроса для обновления данных. В форме "Клиенты" (Customers) есть поле со списком "Страна" (Country). Источником данных для этого поля является запрос, который выбирает значения из поля "Страна" (Country) таблицы "Клиенты" (Customers):

Если при вводе клиента в таблицу добавляется новое название страны, то в списке эта страна не появится, поскольку запрос будет выполнен повторно только при следующем открытии формы. Чтобы провести обновление списка стран раньше, следует назначить событию После обновления (After Update) формы макрос Клиенты.Обновление списка стран, который состоит из одной макрокоманды Обновление (Requery) со значением аргумента "Страна" (Country) (рис. 11.18).

Рис. 11.18. Назначение макроса событию формы После обновления

Замечание

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

С помощью макрокоманды Обновление (Requery) можно обновлять данные и в неактивной форме, точнее, не в той форме, которой назначен макрос. Однако в этом случае сначала необходимо выполнить макрокоманду ВыделитьОбъект(SelectObject), которая перенесет фокус на нужную форму, чтобы ее активизировать (потом фокус можно вернуть обратно).

Макрокоманда ПоказатьВсеЗаписи (ShowAllRecords), как уже отмечалось, отменяет действие фильтра и повторно просматривает источник записей. Ее часто используют для обновления данных в подчиненной форме.

Макрокоманда ОбновитьОбъект (RepaintObject) применяется только к объекту базы данных (к таблице, запросу, форме, отчету, странице, макросу и модулю) и не применяется к элементу управления. Она выполняет немедленное обновление указанного открытого объекта (если имя объекта не задано, обновляется активный объект), хотя при этом не производится повторное выполнение запроса к источнику данных. Обновление объекта не влияет на. отображение новых и удаленных записей, как это происходит при выполнении макрокоманды Обновление (Requery). Обычно макрокоманду ОбновитьОбъект (RepaintObject) применяют для отображения результатов изменения данных с помощью макрокоманд ЗадатьЗначение (SetValue), а также для повторного вычисления значений выражений в вычисляемых элементах управления.

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

1. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.

2. Выберите поле с данными, которые следует обновить, и введите выражение (условие изменения) в строке Обновление для этого поля.

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

3. На вкладке Конструктор в группе Результаты выберите команду Запуск.

Примечание. После выполнения запроса можно заметить, что в его результатах отсутствуют некоторые поля. Если запрос содержит поля, которые не обновлялись, по умолчанию эти поля не отображаются в результатах. Предположим, что были включены поля «Код» из двух таблиц, чтобы убедиться, что запрос возвращает и обрабатывает нужные записи. Если эти поля «Код» не обновлялись, то в приложении Access они не отображаются в результатах.

Обновление данных в одной таблице данными из другой таблицы

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

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

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

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

2. Объедините эти таблицы по полям, содержащим связанные сведения.

3. Добавьте имена конечных полей в строку Поле бланка запроса.

4. Добавьте имена исходных полей в строку Обновление бланка запроса с использованием следующего синтаксиса: [исходная_таблица].[исходное_поле].

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

1. На вкладке Создание в группе Другие щелкните Конструктор запросов.

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

3. Объедините эти таблицы по полям, содержащим связанные сведения. Для этого выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.

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

4. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.

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

6. В строке Обновление запроса в каждый столбец, содержащий конечное поле, добавьте имя исходной таблицы и поля исходной таблицы, соответствующее полю в конечной таблице, используя следующий синтаксис: [Таблица].[Поле], где имена таблицы и поля заключаются в квадратные скобки и разделяются точкой.

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

7. На вкладке Конструктор в группе Результаты выберите команду Запуск.

Читайте также: