Access 2002

Источник записей подчиненного запроса


Как правило, если источник записей подчиненного запроса тот же, что и у основного, отдельный подчиненный отчет вообще не нужен. В этом случае лучше пересмотреть структуру своего отчета.

А если в отчете используются функции по подмножеству (называемые также доменными), такие как DLookup или DSum, имеет смысл заменить их подчиненным отчетом. Вы получите тот же результат, но без медленно работающих выражений с доменными функциями. Впрочем, если вам нужно найти в таблице всего лишь одно значение, доменная функция сработает быстрее.

Если использовавшийся в Access версии 2 язык Access Basic был интерпретируемым, то VBA — это компилируемый язык. Разница в их быстродействии огромна, но вы должны быть в курсе некоторых особенностей, связанных с использованием компилируемого кода. Об этом и рассказывается в этом разделе.

Когда Access 2 загружала приложение, она помещала в память и все его глобальные модули. Формы и отчеты загружались только при необходимости, но глобальные модули находились в памяти все время. Это приводило к довольно долгой загрузке приложения, но зато потом оно работало быстро. Разве что при загрузке формы или отчета могла быть небольшая пауза из-за загрузки модуля. Конечно, загрузка большого модуля может занять немало времени — ведь его нужно прочитать с диска в оперативную память.

VBA загружает нужный код во время работы приложения. Сразу загружаются только модули, вызываемые в процессе подготовки приложения к работе. Это значит, что вместе с приложением загружаются только модули, которые нужны начальной форме или макросу Autoexec. Далее, когда приложение вызывает процедуру, хранящуюся в еще не загруженном модуле, VBA загружает этот модуль.

(В Access 95, загружая модуль, VBA загружал также все модули, содержащие используемый им код или переменные. Это «дерево вызовов» сильно замедляло загрузку форм.)

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