Access обновить подчиненную форму

Access обновить подчиненную форму

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

Настройка

Макрокоманда Обновление имеет следующие аргументы:

Имя элемента управления, который требуется обновить. Имя вводится в окне конструктора макросов в поле Имя элемента. Следует указать только имя элемента, а не полный идентификатор (такой как Forms! ИмяФормы! ИмяЭлемента). Чтобы отправить повторный запрос к источнику данных активного объекта, оставьте это поле пустым. Если активным объектом является таблица или результирующий набор, значение этого аргумента нужно оставить пустым.

Примечания

Макрокоманда Обновление выполняет одно из следующих действий:

Повторно выполняет запрос, на котором основан элемент управления или объект.

Отображает добавление, изменение и удаление записей в таблице, на которой основан элемент управления или объект.

Примечание: Выполнение макрокоманды Обновление не влияет на положение указателя записей.

К элементам управления, основанным на запросе или таблице, относятся:

списки и поля со списком;

элементы управления подчиненной формы;

объекты OLE, например диаграммы;

элементы управления с агрегатными функциями домена, например БД СУММ.

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

Если поле Имя элемента не заполнено, выполнение макрокоманды Обновление имеет тот же эффект, что и нажатие клавиш SHIFT+F9 при установленном на объекте фокусе. Если фокус находится на элементе управления подчиненной формы, макрокоманда отправляет повторный запрос только к источнику данных этой подчиненной формы (как при нажатии клавиш SHIFT+F9).

Примечание: Макрокоманда Обновление отправляет запрос к источнику элемента управления или объекта. С другой стороны, макрокоманда ОбновитьОбъект обновляет элементы управления в указанном объекте, но не отправляет повторный запрос к базе данных и не отображает новые записи. Макрокоманда ПоказатьВсеЗаписи не только отправляет повторный запрос для активного объекта, но также удаляет все примененные фильтры, чего не делает макрокоманда Обновление.

Метод Requery обновляет базовые данные указанной подчиненной формы, перезапрашивая источник данных для подчиненной формы. The Requery method updates the data underlying a specified subform by requerying the source of data for the subform.

Читайте также:  Как вставить картинку в текст фотошоп

Синтаксис Syntax

Expression. Повторный запрос expression.Requery

Expression (выражение ) Переменная, представляющая объект подчиненНой формы . expression A variable that represents a SubForm object.

Примечания Remarks

Этот метод можно использовать для того, чтобы форма или элемент управления отображали самые последние данные. You can use this method to ensure that a form or control displays the most recent data.

Метод Requery выполняет одно из следующих действий: The Requery method does one of the following:

  • Повторно выполняет запрос, на котором основана форма или элемент управления. Reruns the query on which the form or control is based.
  • Отображает новые или измененные записи или удаляет удаленные записи из таблицы, на которой основана форма или элемент управления. Displays any new or changed records or removes deleted records from the table on which the form or control is based.
  • Обновляет записи в соответствии с изменениями свойства Filter формы. Updates records displayed based on any changes to the Filter property of the form.

Элементы управления, основанные на запросе или таблице, включают: Controls based on a query or table include:

  • Списки и поля со списками. List boxes and combo boxes.
  • Элементы управления подчиненной формы. Subform controls.
  • Объекты OLE, например диаграммы. OLE objects, such as charts.
  • Элементы управления, для которых Настройка свойства ControlSource включает статистические функции по подмножеству или статистические функции SQL. Controls for which the ControlSource property setting includes domain aggregate functions or SQL aggregate functions.

Если указать любой другой тип элемента управления для объекта, указанного выражением __, будет повторно запрошен источник записей для формы. If you specify any other type of control for the object specified by expression, the record source for the form is requeried.

Если объект, указанный в выражении , не связан с полем в таблице или запросе, метод recalculation вызывает перерасчет элемента управления. If the object specified by expression isn’t bound to a field in a table or query, the Requery method forces a recalculation of the control.

Если опустить объект, указанный выражением __, метод requeries повторно запрашивает базовый источник данных для формы или элемента управления, имеющего фокус. **** If you omit the object specified by expression, the Requery method requeries the underlying data source for the form or control that has the focus. Если элемент управления, имеющий фокус, имеет источник записей или источник строк, он будет передаваться в запрос; в противном случае данные элемента управления будут просто обновлены. If the control that has the focus has a record source or row source, it will be requeried; otherwise, the control’s data will simply be refreshed.

Читайте также:  Шипит динамик на телефоне андроид

Если фокус находится на элементе управления подчиненной формы, этот метод повторно запрашивает источник записи для подчиненной формы, а не для родительской формы. If a subform control has the focus, this method only requeries the record source for the subform, not the parent form.

  • Метод Requery обновляет данные, содержащиеся в форме или элементе управления, чтобы отобразить записи, которые были обновлены или удалены из источника записей с момента последнего запроса. The Requery method updates the data underlying a form or control to reflect records that are new to or deleted from the record source since it was last queried. Метод Refresh показывает только изменения, внесенные в текущий набор записей; Он не отражает новые или удаленные записи в источнике записей. The Refresh method shows only changes that have been made to the current set of records; it doesn’t reflect new or deleted records in the record source. Метод repain просто перерисовывает указанную форму и ее элементы управления. The Repaint method simply repaints the specified form and its controls.
  • Метод Requery не передает управление операционной системе, позволяя Windows продолжить обработку сообщений. The Requery method doesn’t pass control to the operating system to allow Windows to continue processing messages. Используйте функцию DoEvents , если необходимо переделать временное управление операционной системе. Use the DoEvents function if you need to relinquish temporary control to the operating system.
  • Метод Requery выполняется быстрее, чем действие Requery. The Requery method is faster than the Requery action. При использовании макрокоманды "обновление" Microsoft Access закрывает запрос и перезагружает его из базы данных. When you use the Requery action, Microsoft Access closes the query and reloads it from the database. При использовании метода Reload Access повторно выполнят запрос, не закрывая и не перегружая его. When you use the Requery method, Access reruns the query without closing and reloading it.

Пример Example

В следующем примере используется метод Requery для запроса данных из списка Емплойилист в форме Employees. **** The following example uses the Requery method to requery the data from the EmployeeList list box on an Employees form.

Читайте также:  Как лечить компьютер от вирусов

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

348 просмотра

2 ответа

1 Репутация автора

У меня возникают проблемы при обновлении подчиненной формы после добавления записи в другой форме в Access 2007-2010. Кажется, это может быть очень просто, но я не уверен, где я терплю неудачу.

У меня есть три формы:

  • Тот, который является основной формой пользователя с именем main_user,
  • еще один, где пользователь создает требования к закупкам под названием tb_requirements
  • и еще один, связанный с tb_requirements, который называется tb_records.

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

Эта функция уже работает, но когда я пытаюсь обновить / вернуться к главному пользовательскому экрану (main_user) со всеми открытыми и новыми требованиями, она не работает. Основная форма пользователя использует подчиненную форму таблицы tb_requirements. Итак, в VBA main_user я написал следующий код:

Я также попытался с .Refresh и .Recalc и он не работает. Не могли бы вы помочь?

Ответы (2)

плюса

3018 Репутация автора

Активировать может быть то, что вам нужно. это как вернуть фокус (IIRC) на основную форму.

Другой подход заключается в открытии «вторичных» форм в диалоговом режиме. псевдокод:

Вы можете сделать это в 2 строки.

между 1 и 2 вы работаете в требованиях к покупке.

Автор: wazz Размещён: 17.05.2017 10:23

плюса

1 Репутация автора

Привет ребята! Я уже понял это. Чего мне не хватало, так это закрытия формы и таблицы после добавления новой записи.

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

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