Access 2002

Время загрузки приложений


Конечно, время загрузки приложений с большим количеством кода при загрузке «по требованию» значительно уменьшается.

Когда Access 95 загружала очередной объект, вместе с ним мог загружаться и ненужный код — множество глобальных модулей, код которых вызывался из модуля формы или отчета. Начиная с версии Access 97 дело обстоит иначе: теперь VBA загружает только тот модуль, который нужен прямо сейчас, и не тянет за ним все его связи.

А вот по частям модули загружаться не могут. Если приложение обращается к переменной или процедуре из модуля, весь модуль загружается целиком. Поэтому, если вы озабочены скоростью выполнения программного кода, подумайте, нельзя ли перепланировать структуру некоторых модулей.

Если вы хотите, чтобы Access загружала модули так, как это делалось в версии 95, это можно организовать, хотя и несколько искусственным способом. Для этого достаточно обратиться к одной переменной в каждом модуле, который вы хотите загрузить. Если вы хотите, чтобы при загрузке приложения вызывались сразу все его модули, поместите в каждый из них Public-переменную и в загрузочном коде приложения прочитайте значения всех этих переменных. Если вам кажется, что это слишком сложно,утешьтесь тем, что начиная с версии Access 97 у вас, по крайней мере, есть выбор, а до того его просто не было.

VBA обязательно должен откомпилировать код перед его выполнением. Если вы не дадите соответствующую команду заранее, VBA будет компилировать модули прямо перед их загрузкой. Например, если вы обратитесь к форме или отчету с неоткомпилированным модулем, VBA должен будет откомпилировать его, и только после этого Access сможет загрузить объект. Очевидно, что загрузка в таком случае пройдет медленнее обычного.

Комментарии закрыты