Access 2002

Работая с большим приложением


Если, работая с большим приложением, вы обнаружите, что VBA ведет себя странно, попробуйте воспользоваться недокументированной опцией командной строки /DECOMPILE. Однако сначала обязательно сделайте резервную копию своего приложения. Затем запустите Access из командной строки, открыв базу данных с флагом /DECOMPILE, вот так: «MSACCESS ВашаБазаДан- ных-MDB /DECOMPILE». Access загрузится, откроет базу данных и сбросит флаги компиляции проекта. Сохраните базу данных и закройте Access. Снова загрузите Access уже обычным путем, откройте базу данных и тут же откомпилируйте проект. Еще раз закройте базу данных и перезапустите Access. Теперь база данных должна быть «чистой» и готовой к работе. Однако, повторяем, не забудьте сделать резервную копию перед выполнением этой недокументированной процедуры.

Теперь вы понимаете, как VBA работает с модулями, и можете задуматься о том, как оптимизировать их использование. Первый и самый очевидный способ — сократить количество ненужного кода в каждом модуле. VBA всегда загружает в память весь модуль целиком, как только вы обратитесь к любой его процедуре или переменной, поэтому чем меньше кода придется загрузить, тем быстрее откроется форма или отчет. Удаляйте из основных модулей редко используемые процедуры, группируйте их по назначению. Не забывайте, что стоит вам обратиться к одной переменной модуля, как весь модуль оказывается в памяти. Ваша цель — добиться, чтобы в память загружалось как можно меньше кода.

В отличие от Access 95 сейчас, когда пользователь добавляет в приложение новую форму или отчет, приложение не декомпилируется. Благодаря декомпиляции «снизу вверх» вы можете быть уверены, что никакой существующий код не обращается к новой форме или отчету, а значит, приложение останется откомпилированным. Однако конечный пользователь все же может вызвать декомпиляцию кода.

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