|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Я считал что при загрузке базы сначала выполняется макрос autoexec, а потом грузится форма, указанная в параметрах загрузки базы. И вот столкнулся с такой вещью. У меня в autoexec вызываются несколько функций, а те в свою очередь вызывают другие функции. И получается, что autoexec ещё не отработал, а форма уже загрузилась. У меня должны в autoexec выполниться следующие проверки - наличие пути к удалённой базе - наличие самой удалённой базы - отсутствие подключенных пользователей к удалённой базе. В случаи невыполнения очередной проверки выводится MsgBox с сообщением об этом и работа оканчивается. Но у меня выводится загружаемая форма, а поверх её висит этот MsgBox с сообщением об ошибке. Странно это. ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:46 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
А зачем вы это совмещаете? Проверяйте что нужно в автоэкзеке и оттуда же запускайте форму. Автоэкзек и форма грузятся параллельно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 13:02 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
MrShinА зачем вы это совмещаете? Проверяйте что нужно в автоэкзеке и оттуда же запускайте форму. Автоэкзек и форма грузятся параллельно Такое у нас требование к программе. Её потом включают в систему и запускают при помощи своеобразного диспетчера программ. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 13:12 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
JossТакое у нас требование к программе Очень необычное требование. А можно попдробнее, почему возникло такое требование? Пока не понимаю, где это может потребоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 13:56 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Joss- наличие пути к удалённой базе - наличие самой удалённой базы - отсутствие подключенных пользователей к удалённой базе. проверять в самой форме при открытии, autoexec убрать вообще... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 14:16 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
У меня все проверки санкционированности доступа и переопределение связей в стартовой форме. AutoExec-ом никогда не пользовалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 14:43 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Объект автозагрузки должен быть один. Только так можно гарантировать порядок загрузки/выполнения компонентов алгоритма. Так что или форму грузить из макроса, или действия макроса выполнять при загрузке формы из её модуля. Поскольку логически сначала выполняются проверки, потом грузится форма - попытка выполнения проверок из кода модуля формы не соответствует требуемой логике в полном объёме. Вывод: воспользуйтесь советом MrShin . JossТакое у нас требование к программе. Её потом включают в систему и запускают при помощи своеобразного диспетчера программ. Это требование (по тексту - совершенно идиотское) никак не интерферирует с предлагаемой реализацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 14:44 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
AkinaОбъект автозагрузки должен быть один. Только так можно гарантировать порядок загрузки/выполнения компонентов алгоритма. Так что или форму грузить из макроса, или действия макроса выполнять при загрузке формы из её модуля. ... Во вложении пример и с формой, и с макросом, не согласный с этим утверждением. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 15:20 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Predeclaredне согласный с этим утверждением.Каким именно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 15:21 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
AkinaКаким именно? Так я же процитировал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 15:25 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Predeclared , там не одно утверждение. Причём базовым является утверждение AkinaТолько так можно гарантировать порядок загрузки/выполнения компонентов алгоритма. а всё остальное - следствия. Вы оспариваете именно базовое утверждение? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 15:29 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
К чему относится кусок "базового утверждения": AkinaТолько так ... Утверждения с такими вставками на роль базового не подходят. Не? AkinaВы оспариваете именно базовое утверждение? Нет. Целиком процитированное. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 15:43 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
PredeclaredУтверждения с такими вставками на роль базового не подходят. В среде MS Access выполнение автоматической загрузки макроса Autoexec и стартовой формы выполняется параллельно и асинхронно. Механизм какого-либо управления порядком выполнения безотносительно к содержимому указанных процедур - отсутствует. Следовательно, из трёх вариантов (только макрос, только форма, макрос и форма) только первые два варианта способны обеспечить гарантированный порядок выполнения процедур (при отсутствии в тексте вызовов асинхронных процедур, понятно). Соответственно, в данном конкретном случае слова "только так" легитимны и оправданы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 16:57 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Akina... В среде MS Access выполнение автоматической загрузки макроса Autoexec и стартовой формы выполняется параллельно и асинхронно. Механизм какого-либо управления порядком выполнения безотносительно к содержимому указанных процедур - отсутствует. Следовательно, из трёх вариантов (только макрос, только форма, макрос и форма) только первые два варианта способны обеспечить гарантированный порядок выполнения процедур (при отсутствии в тексте вызовов асинхронных процедур, понятно). Вот это должно было быть на месте вставки "Только так", тогда фраза, безусловно годилась бы на роль "Базового утверждения". Считаем, что там оно так и было. Будем от этого и отталкиваться. Однако, приложенный пример доступно показывает несостоятельность второй части этого "Базового" утверждения, и, как следствие, остальных двух утверждений, ибо: 1. >>Объект автозагрузки должен быть один В примере их оба два. 2. >>только первые два варианта способны обеспечить гарантированный порядок выполнения процедур В примере выбран третий вариант и он 100% обеспечивает "гарантированный порядок выполнения процедур". 3. >>Так что или форму грузить из макроса, или действия макроса выполнять при загрузке формы из её модуля. ... В примере нет ни первого, ни второго варианта. Каждый сам по себе. Причем "гарантированный порядок выполнения процедур" абсолютно не зависит от того, какой объект автозагрузки сработал первым, и поднял инстанс класса. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:26 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Если нам заранее неизвестен порядок загрузки взаимозаменяемых объектов, то логичнее пользоваться одним. То, что зависимость объектов от порядка загрузки можно обойти, не заменяет общего надежного решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:39 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
mds_world..., то логичнее пользоваться одним. ... :) http://hiprog.com/forum/read.php?id_forum=1&id_theme=11795&page=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:41 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
PredeclaredВ примере выбран третий вариант и он 100% обеспечивает "гарантированный порядок выполнения процедур". Да ни хрена. В примере вызов функции выполняется дважды - и при загрузке формы, и при выполнении макроса autoexec. Измените функцию на Код: vbnet 1. 2. 3. 4. 5. 6.
Очень любопытный итог в Immediate Window... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:44 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
У меня один раз: (а2003) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:49 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
И, кстати говоря, весь стартапный экшн по проверке должен быть описан в процедуре инициализации класса, а не в функции CheckIt. Задача функции CheckIt только в одном: дернуть инстанс класса, потому как макросы не умеют дергать методы/свойства инстансов классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 17:53 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
PredeclaredЗадача функции CheckIt только в одном: дернуть инстанс класса, Не-а... конкретный инстанс нигде не описан и не формируется. Обращение идёт к абстрактному шаблону. PredeclaredУ меня один раз: (а2003) Один раз и должно - по озвученной выше причине. Но жаль, что Вы смухлевали и поставили вывод в процедуре после обращения к методу класса... пропустили всё самое интересное. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:05 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Поправка: Predeclared... весь стартапный экшн по проверке должен быть описан вызываться в процедуре инициализации класса... Описан то он может быть и в других местах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:06 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Да, кстати... а потом определите (Dim) в функции экземпляр класса Project, и вызовите метод этого экземпляра. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:08 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Akina... Не-а... конкретный инстанс нигде не описан и не формируется. Обращение идёт к абстрактному шаблону. Вы не знакомы с Attribute VB_PredeclaredId? :) А меня мембер 13 квартал ознакомил, заочно. Akina... Но жаль, что Вы смухлевали и поставили вывод в процедуре после обращения к методу класса... пропустили всё самое интересное. Вот скрин по вашему листингу: ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:12 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
Predeclared... А меня мембер 13 квартал ознакомил, заочно... здесь: 13829891 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:17 |
|
Порядок выполнения макроса autoexec и загружаемой формы
|
|||
---|---|---|---|
#18+
О! по коду сперва должна выводиться единичка, а на самом деле наоборот... ни на какие мысли не наталкивает? Тогда попробуйте вот такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Сколько таки раз выполняется вызов? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 18:18 |
|
|
start [/forum/topic.php?fid=45&startmsg=39210978&tid=1613690]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 155ms |
0 / 0 |