Обновление формы макросом

Автор AlexShad, 14 января 2011, 16:17

0 Пользователи и 1 гость просматривают эту тему.

AlexShad

Здравствуйте!
Имеется форма БД с табличным элементом управления.
Необходимо, чтобы после ввода значения поля в таблице, форма обновлялась, т.е. посадить макрос обновления на событие "После сохранения" для столбца таблицы.
Какой макрос может обновлять форму?
Подскажите, пож-та!

convas

Form.reload() (или Form.load()).

Только события "После сохранения" для столбца таблицы нет. ???

[вложение удалено Администратором]

AlexShad

Извините, ошибся: событие "После сохранения" есть у формы.
А нельзя ли поподробнее для чайников.
Спасибо!

convas

Макрос примерно такой:
Sub reload_MainForm_from_Column(Event As Object)
  Dim myForm As Object
  myForm=Event.Source.Model.Parent.Parent
  myForm.reload()
  MsgBox myForm.Name & " Reload"
End Sub


PS. Но с выбором событий для этого макроса будут проблемы.

AlexShad

Спасибо.
А как должен выглядеть макрос, чтобы он работал на событии "После сохранения" у формы?
В приложенной тестовой базе форма таблица должна обновиться после ввода/изменения  поля (например, "Номера операции").
Т.е. в форме таблицы стоит сортировка по полю "Op" и нужно, чтобы после ввода/изменения его форма обновилась, для правильного порядка следования номеров операций.
У меня возникает ошибка при такой привязке.

[вложение удалено Администратором]

convas

ЦитироватьА как должен выглядеть макрос, чтобы он работал на событии "После сохранения" у формы?
Sub reload_MainForm(Event As Object)
  Dim myForm As Object
  myForm=Event.Source
  myForm.reload()
  MsgBox myForm.Name & " Reload"
End Sub

AlexShad

Спасибо большое! Всё работает.

AlexShad

Упс!
А если форма подчинённая, то выдает "Ошибку времени выполнения BASIC. Переменная типа Object не установлена" в строке "   myForm=Event.Source".
Думал, что к какой форме привязан макрос, ту и обновит.
Что-то я не разобрался от чего это зависит.

raptor

#8
Что-то вроде этого(http://www.oooforum.org/forum/viewtopic.phtml?t=93726):
ЦитироватьSub Reload_Subform_from_Mainform_Event (oEv as object)
dim oForm as object
dim oSubForm as object

oForm = oEv.source
oSubform = oForm.GetByName("SubForm") Rem.. your subform name. Check the form Navigator. Case important.

oSubForm.reload()

End Sub

Можно поискать на http://www.oooforum.org/forum/viewforum.phtml?f=10
по словам: subform reload

тут:
http://user.services.openoffice.org/en/forum/viewtopic.php?f=83&t=28235

и книжка Питоньяка по программированию на Base:
www.pitonyak.org/database/AndrewBase.pdf