Форум пользователей Visio http://visio.getbb.ru/ |
|
Непонятное поведение UserForm http://visio.getbb.ru/viewtopic.php?f=6&t=1117 |
Страница 1 из 1 |
Автор: | lite.fun [ 25 апр 2017, 07:40 ] | ||
Заголовок сообщения: | Непонятное поведение UserForm | ||
Доброго времени суток, специалисты! Необходимо мнение знающих людей по теме. Предыстория: имеется файл visio, в нем создана UserForm1, данная форма вызывается по нажатию кнопки "Обновить все базы" на листе "ИД". Форма представляет из себя окно, в котором надпись "Идет обновление базы X из Y", где X и Y передается из тела скрипта формы. Скрипт следующий: Код: Private Sub UserForm_Activate() Dim i As Integer: i = 0 Dim j As Integer: j = Application.ActiveDocument.DataRecordsets.Count Label2.Caption = i Label4.Caption = j For i = 1 To j Label2.Caption = i Application.ActiveDocument.DataRecordsets(i).Refresh Call UpdateBaseInfo1(i) Next i Unload Me End Sub Так вот, при создании и тестировании формы, она работала корректно, окно открывалось, в нем была надпись и X и Y обновлялись в режиме онлайн пока выполнялся скрипт формы, после чего окно закрывалось. Однако после очередного сохранения файла, закрытия и повторного открытия, при вызове формы, открывается окно формы, но в нем нет никакого текста, т.е. форма выполняется, скрипт в ней выполняется, но текст в форме не отображается. Есть идеи почему так себя ведет Visio? P.S. Файл во вложении
|
Автор: | Surrogate [ 25 апр 2017, 08:25 ] |
Заголовок сообщения: | Re: Непонятное поведение UserForm |
lite.fun писал(а): Необходимо мнение знающих людей по теме. не могу назвать себя знающим по этой теме - я очень редко использую формы. И не использую рекордсеты совсем. Запускал код в Visio 2010 - вроде надписи есть или не те ? зато вылетает ошибка. наверно Visio пытается достучаться до файла источника ? |
Автор: | lite.fun [ 25 апр 2017, 08:49 ] | ||
Заголовок сообщения: | Re: Непонятное поведение UserForm | ||
Surrogate писал(а): или не те ? зато вылетает ошибка в MSDN я что-то не нашел, что рекордсеты можно по отдельности обновлять ? Surrogate, текст в форме у вас правильный. Что-то я забыл приложить файл excel с исходными данными, прилагаю, для проверки и чистоты эксперимента. Рекордсеты можно обновлять по отдельности, макрорекордер помог: Код: Application.ActiveDocument.DataRecordsets(index).Refresh Собственно в моем случае сам скрипт в форме выполняется корректно и без проблем. А вот отображение текста после сохранения документа пропало ((
|
Автор: | Surrogate [ 25 апр 2017, 08:55 ] |
Заголовок сообщения: | Re: Непонятное поведение UserForm |
lite.fun писал(а): отображение текста после сохранения документа пропало может в моднейшем Visio2016 так быстро происходит обновление, что текст на форме тупо не успевает подгрузиться ?
|
Автор: | lite.fun [ 25 апр 2017, 09:40 ] |
Заголовок сообщения: | Re: Непонятное поведение UserForm |
Surrogate писал(а): lite.fun писал(а): отображение текста после сохранения документа пропало может в моднейшем Visio2016 так быстро происходит обновление, что текст на форме тупо не успевает подгрузиться ? Хм, ну может и так конечно, сейчас промониторил, время выполнения у меня скрипта 2 сек. Хотя до сохранения и закрытия документа, примерно также и было, текст отображался. А у Вас успевает на форме текст от 1 до 8 обновиться? |
Автор: | Shishok [ 25 апр 2017, 09:43 ] |
Заголовок сообщения: | Re: Непонятное поведение UserForm |
Попробуй в процедуре UserForm_Activate() (для UserForm1) написать после строки: Код: Application.ActiveDocument.DataRecordsets(i).Refresh строку: Код: Me.Repaint
|
Автор: | lite.fun [ 25 апр 2017, 09:48 ] |
Заголовок сообщения: | Re: Непонятное поведение UserForm |
Shishok писал(а): Попробуй в процедуре UserForm_Activate() (для UserForm1) написать после строки: Код: Application.ActiveDocument.DataRecordsets(i).Refresh строку: Код: Me.Repaint Shishok, благодарю за помощь, все заработало! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |