Vba обновить форму access: Метод Form.Refresh (Access) | Microsoft Learn

Метод Form.Refresh (Access) | Microsoft Learn





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

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

Синтаксис

выражение.Refresh

выражение: переменная, представляющая объект Form.

Возвращаемое значение

Отсутствует

Использование метода Refresh эквивалентно выбору параметра Обновить на вкладке Главная.

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

В базе данных Access метод Refresh показывает только изменения, внесенные в записи в текущем наборе. Так как метод Refresh фактически не отправляет запрос в базу данных, текущий набор не будет включать добавленные записи или исключать записи, которые были удалены с момента последнего повторного запроса базы данных, а также не будет исключать записи, которые больше не удовлетворяют условиям запроса или фильтра. Чтобы повторно запросить базу данных, используйте метод Requery. При повторном запросе источника записей текущий набор записей будет точно отражать все данные в источнике записей.

В проекте Access (ADP) метод Refresh повторно запрашивает базу данных и отображает все новые или измененные записи, а также удаляет удаленные записи из таблицы, на которой основана форма. Кроме того, форма обновляется для отображения записей на основе всех изменений свойства Filter формы.

Примечание.

  • Часто обновление формы или таблицы выполняется быстрее, чем их повторный запрос. Это особенно верно, если первоначальный запрос выполнялся медленно.
  • Не путайте метод Refresh с методом Repaint, который перерисовывает экран с помощью всех ожидающихся визуальных изменений.

Пример

В приведенном ниже примере используется метод Refresh для обновления записей в базовом источнике записей для формы Customers, когда форма получает фокус.

Private Sub Form_Activate() 
    Me.Refresh 
End Sub

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

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






Макрокоманда «Обновление» — Служба поддержки Майкрософт

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще. ..Меньше

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

Настройка


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




Аргумент макрокоманды


Описание


Имя элемента

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

Примечания


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

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

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

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

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

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

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

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

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

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

Если оставить аргумент «Имя управления» пустым, действие «Повторное изменение» действует так же, как нажатие shift+F9 при нажатии фокус. Если фокус подчиненная форма, это действие будет направлено только к источнику подчиненной формы (как и при нажатии shift+F9).

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

Чтобы отправить повторный запрос для элемента управления, который не относится к активному объекту, следует использовать метод Requery в модуле Visual Basic для приложений (VBA), а не макрокоманду Обновление или соответствующий ей метод Requery объекта DoCmd. Метод Requery в VBA выполняется быстрее, чем макрокоманда Обновление или метод DoCmd.Requery. Кроме того, при использовании макрокоманды Обновление или метода DoCmd.Requery в Access запрос закрывается и повторно открывается из базы данных, тогда как при выполнении метода Requery Access повторно выполняет запрос без закрытия и перезагрузки. Обратите внимание на то, что метод Requery объекта данных ActiveX (ADO) работает аналогично методу Requery в Access.



Метод Form.Refresh (Доступ) | Microsoft Узнайте

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья
  • 2 минуты на чтение

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

Синтаксис

выражение . Обновить

выражение Переменная, представляющая объект формы .

Возвращаемое значение

Ничего

Использование метода Refresh эквивалентно выбору Refresh на вкладке Home .

Microsoft Access автоматически обновляет записи на основе параметра Refresh Interval на вкладке Advanced Диалоговое окно «Параметры доступа» , доступное при нажатии кнопки Microsoft Office, а затем выборе «Параметры доступа» . Источники данных ODBC обновляются на основе параметра Интервал обновления ODBC на вкладке Дополнительно диалогового окна Параметры доступа . Используйте метод Refresh для просмотра изменений, внесенных в текущий набор записей в форме или таблице с момента последнего обновления источника записей, лежащего в основе формы или таблицы.

В базе данных Access метод Refresh показывает только изменения, внесенные в записи в текущем наборе. Поскольку метод Refresh фактически не запрашивает базу данных, текущий набор не будет включать записи, которые были добавлены, или исключать записи, которые были удалены с момента последнего запроса базы данных, а также не будет исключать записи, которые больше не удовлетворяют требованиям. критерии запроса или фильтра. Чтобы запросить базу данных, используйте метод Requery . Когда запрашивается источник записей для формы, текущий набор записей будет точно отражать все данные в источнике записей.

В проекте Access (.adp) метод Refresh запрашивает базу данных и отображает все новые или измененные записи или удаляет удаленные записи из таблицы, на которой основана форма. Форма также обновляется для отображения записей на основе любых изменений свойства Filter формы.

Примечание

  • Зачастую быстрее обновить форму или таблицу, чем повторно запрашивать их. Это особенно верно, если исходный запрос выполнялся медленно.
  • Не путайте Метод Refresh с методом Repaint , который перерисовывает экран с любыми ожидаемыми визуальными изменениями.

Пример

В следующем примере метод Refresh используется для обновления записей в базовом источнике записей для формы Customers всякий раз, когда форма получает фокус.

 Частная подпрограмма Form_Activate()
    Я.Обновить
Конец сабвуфера
 

Поддержка и отзывы

У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

vba — Как обновить форму доступа

спросил

Изменено
2 года, 8 месяцев назад

Просмотрено
145 тысяч раз

Я создаю приложение MS Access, в котором все формы являются модальными. Однако после изменения данных в форме я хочу обновить родительскую форму этой формы с более новыми данными. Есть ли способ сделать это? Чтобы уточнить:

Учтите, что существует две формы: форма A и форма B. Обе формы являются модальными. Из формы A я инициирую форму B, и теперь форма B привлекает внимание пользователей. Но при закрытии формы B я хочу обновить форму A. Есть ли способ сделать это?

  • vba
  • ms-access
  • Refresh

Вы можете перекрасить и/или запросить:

При закрытии формы B:

 Forms!FormA.Requery
 

Вы это имеете в виду?

1

Нет, я как бы хочу запустить Form_Load
формы А, если возможно

— Варун Махаджан

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

Form B:

 Sub RunFormALoad()
   Forms!FormA. ToDoOnLoad
Конец сабвуфера
 

Форма A:

 Public Sub Form_Load()
    ToDoOnLoad
Конец сабвуфера
Sub ToDoOnLoad()
    txtText = "Привет"
Конец сабвуфера
 

0

«Requery» — это действительно то, что вы хотите запустить, но вы можете сделать это в событии «On Got Focus» формы A. Если у вас есть код в Form_Load, возможно, вы можете переместить его в Form_Got_Focus.

3

Я рекомендую вам использовать REQUERY конкретное поле со списком, данные которого вы изменили, И сделать это после оператора Cmd.Close . таким образом, если вы вводили данные, эти данные также запрашиваются.

 DoCmd.Закрыть
Forms![Form_Name]![Combo_Box_Name].Requery
 

вы также можете указать на недавно измененное значение

 Dim id As Integer
id = Me.[Index_Field]
DoCmd.Close
Forms![Form_Name]![Combo_Box_Name].