powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Порядок выполнения макроса autoexec и загружаемой формы
18 сообщений из 43, страница 2 из 2
Порядок выполнения макроса autoexec и загружаемой формы
    #39211380
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaО! по коду сперва должна выводиться единичка, а на самом деле наоборот... ни на какие мысли не наталкивает?
...
Очень даже наталкивает.
Форма сработала быстрее макроса, потому и сначала инстанс поднялся,
а потом макрос дернул функцию.
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211386
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina...Тогда попробуйте вот такой код:
Код: vbnet
1.
2.
3.
Public Function CheckIt() As Boolean
Dim prj As New Project
...



Даже пробовать не буду.
В моей реализации нет нужды в New Project.

И прекратите "портить" мой пример своими врезками.
Работайте с тем как я описал, ибо ваши врезки сродни
применению полутораметрового лома в ремонте наручных швейцарских часов.
:)
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211405
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredФорма сработала быстрее макроса, потому и сначала инстанс поднялся,
а потом макрос дернул функцию.Увы, в корне неверно.

И ещё раз повторю - в Вашем коде нет инстанса. Вот в моём последне - есть.
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211411
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaPredeclaredФорма сработала быстрее макроса, потому и сначала инстанс поднялся,
а потом макрос дернул функцию.Увы, в корне неверно.
Ну добавьте в дебаг вывод VBA.Timer в обоих случаях.

Кстати говоря, у меня и на 2003 и на 2007 форма дергает инстанс впереди макроса.

AkinaИ ещё раз повторю - в Вашем коде нет инстанса. Вот в моём последне - есть.
А весь экшн выполняет дух святой.
:)
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211417
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня с таймером как-то так получается:
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211419
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил, можете у себя глянуть с таймером?
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211555
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Form_Open 14418.86 Class_Initialize 14418.86 CheckIt 14418.9
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211564
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaPredeclaredФорма сработала быстрее макроса, потому и сначала инстанс поднялся,
а потом макрос дернул функцию.
Увы, в корне неверно.

Akina, та не, все верно. Не спешите. Все так, как говорит Predeclared. Сначала идет открытие формы frm1(проверял в 2010-ом). На событии открытия происходит первое обращение к классу Project, что вызывает его инициализацию. Потом уже срабатывает макрос, вызывая функцию CheckIt.
Андрей просто вас путает тем, что он изменил в описании класса атрибут Attribute VB_PredeclaredId с False на True, а вы этого, очевидно не заметили. Считайте, что это равнозначно объявлению на уровне стандартного модуля: Public Project as New Project.

Только я не понял зачем, чтобы определить что сработает первым, форма или функция из макроса, пользоваться для этого каким-то классом. Просто в соотв.процедурах сделать Debug.Print "загрузка формы" и Debug.Print "выполнение функции из макроса", что первым будет выведено в окно отладки, того и тапки.

mds_world Если нам заранее неизвестен порядок загрузки взаимозаменяемых объектов, то логичнее пользоваться одним. То, что зависимость объектов от порядка загрузки можно обойти, не заменяет общего надежного решения.
Ну, почему неизвестен? Ну, вот вывели в окно отладки сообщения и узнали, что первой грузится форма. Как выяснили, так происходит в 2010-ом, 2007-ом, 2003-ем. Было бы непоследовательно, если бы Microsoft изменили этот порядок.
Или речь о том, что функция, которую запускает макрос и код открытия стартовой формы выполняются в разных потоках и поэтому может так получится, что в силу разных причин выполнение кода в одном потоке обгонит выполнение кода в другом? Это можно проверить (в одном или в разных), но мне не хочется, просто не вижу причин, почему это должно быть в разных потоках.
Как думаете?
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211565
Александр Маркин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал не все, может и не понял.

В AutoExec нужна одна строчка - Запуск программы,
например, Start()

И уже в модуле в функции Start()
прописывается порядок выполнения команд/ проверок.
И уже в конце Start()-а открываем форму и тд.
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211591
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world, спасибо.

Вакшуль Сергей... Только я не понял зачем, чтобы определить что сработает первым, форма или функция из макроса, пользоваться для этого каким-то классом. ...
Совершенно не за чем.

Применение класса призвано рассечь логику старта приложения на две части:
1. неуправляемую
авторВ среде MS Access выполнение автоматической загрузки макроса Autoexec и стартовой формы выполняется параллельно и асинхронно. Механизм какого-либо управления порядком выполнения безотносительно к содержимому указанных процедур - отсутствует.
2. управляемую
ЯПричем "гарантированный порядок выполнения процедур" (описанный в процедуре инициализации)
абсолютно не зависит от того,
какой объект автозагрузки сработал первым, и поднял инстанс класса.


А с тем, кто первый дергает, мы уже по ходу решили заодно "поиграться".
:)
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211597
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горе от ума...
А ведь 99 % прогеров даже не знают что есть такая проблема, херачат потихоньку...
Сказали им в детстве, что макросы это отстой и нет пробемы...
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211601
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredПрименение класса призвано рассечь логику старта приложения на две части:
1. неуправляемую
...
2. управляемую

я просто не пойму что вообще обсуждается, зачем нужны эти две части? Это все из-за вот этих фраз:

JossЯ считал что при загрузке базы сначала выполняется макрос autoexec, а потом грузится форма, указанная в параметрах загрузки базы
AkinaВ среде MS Access выполнение автоматической загрузки макроса Autoexec и стартовой формы выполняется параллельно и асинхронно.

Какие этому есть подтверждения? Я их не вижу, поэтому и спросил, зачем вообще применять класс. Если в приложении задана стартовая форма, то сначала грузится она, а потом уже выполняется макрос.
Какие проявления асинхронности? В чем? Не хочется делать лишних тестов. Кто-то может это подтвердить?
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39211622
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей... Если в приложении задана стартовая форма, то сначала грузится она, а потом уже выполняется макрос.
...
Мне НЕ удалось это опровергнуть своими немногочисленными потугами.
:)
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39213766
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из-за чего возникла проблема

Тут кто-то спрашивал, почему используются сразу autoexec и стартовая форма. Поясняю.

Для работы окно Access программно растягивается на весь экран. Чтоб не растягивать вручную (большие формы). Задачи находятся на сервере и работают с ними при помощи сервера терминалов.
Почему-то получается так, что если стартовую форму прописываешь последней строкой макроса autoexec, то окно Access уменьшается до "нормального" размера (не на весь экран). А если форму грузишь как стартовую то окно Access остаётся максимальным.

Почему так происходит, не разобрались. Вот и организуем загрузку программ подобным образом.
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39213875
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает максимизировать окно Акцесса программно?
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39214336
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinА что мешает максимизировать окно Акцесса программно?Третья строка в предыдущем посте. Окно Access максимализируется программно, но потом почему-то сбрасывается в обычный режим.
Возможно это особенности нашей конфигурации и у других такого не будет. Локально на компьютере всё отрабатывается правильно при запуске формы из макроса autoexec. А вот при работе через терминальный сервер такие фокусы и происходят
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39214441
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagГоре от ума...
А ведь 99 % прогеров даже не знают что есть такая проблема, херачат потихоньку...
Сказали им в детстве, что макросы это отстой и нет пробемы...
Я точно не знал. Как жить дальше?
...
Рейтинг: 0 / 0
Порядок выполнения макроса autoexec и загружаемой формы
    #39214583
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossОкно Access максимализируется программно, но потом почему-то сбрасывается в обычный режим
Ок, а если все проверки в событии Open стартовой формы делать?
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Порядок выполнения макроса autoexec и загружаемой формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]