Access 2010 - справочная форма загружается в виде вкладок - PullRequest
1 голос
/ 08 февраля 2012

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

Я попробовал следующее: [Forms]![Home].[Form]![AnotherForm].[Form].Refresh

Но нет радости - каков правильный синтаксис?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012
Forms![Home]![Name_of_subform_control_on_Home_form].Requery

или (альтернативный синтаксис):

Forms("Home")("Name_of_subform_control_on_Home_form").Requery

Некоторые уточнения:

  1. В Access вложенные подчиненные формы всегда помещаются в элемент управления подчиненной формы.
    Если вы хотите получить доступ к подчиненной форме программным способом, вам нужно использовать имя элемента управления subform , а не имя самой вложенной подчиненной формы!
  2. Не имеет значения, находится ли подчиненный элемент управления непосредственно в форме Home или в элементе управления с вкладками. Вы всегда используете имена формы и элемента управления подчиненной формы, вам не нужно имя элемента управления вкладкой.

Решение еще короче, когда код, выполняющий обновление, находится непосредственно в форме Home:

Me.Name_of_subform_control_on_Home_form.Requery

EDIT:

Я только что заметил, что я использовал Requery вместо Refresh в своем ответе (вероятно, потому что я прочитал ответ ChrisPadgham раньше, где он предлагает использовать Requery).

Вы можете вызывать Requery и Refresh, используя синтаксис, показанный выше.
Какой из них использовать, зависит от того, что вы хотите сделать:

  • Используйте Requery, если вы хотите повторно загрузить источник данных формы
  • Используйте Refresh, если вы хотите заново загрузить саму форму, то есть обновить элементы управления
0 голосов
/ 08 февраля 2012

вы пробовали Requery, а не Refresh

...