Access 2002

Коллекции All


Функция adhExists использует коллекции All., входящие либо в объект CurrentProject (содержащий ссылки на все объекты пользовательского интерфейса), либо в объект CurrentData (содержащий ссылки на все объекты данных). Код отменяет стандартную обработку ошибок Access (командой On Error Resume Next) и пытается присвоить объектной переменной ссылку на заданный объект. Если объект отсутствует в коллекции, попытка его извлечь вызывает ошибку, и Access присваивает свойству Err. Number код ошибки (ненулевое значение). Функция проверяет значение этого свойства и возвращает результат его сравнения с нулем:

Появившаяся в Access коллекция Al 1 Forms обеспечивает простое решение еще одной распространенной задачи: если вам нужно выяснить, загружена ли конкретная форма, обратитесь к свойству I sLoaded соответствующего объекта из этой коллекции. Коллекция All Forms состоит из объектов AccessObject. Все объекты данного типа обладают свойством I sLoaded, возвращающим значение True, если объект загружен (неважно, в каком режиме — эксплуатации или конструктора). Для упрощения задачи мы написали функцию adhlsFormOpen, приведенную  7.3 (вы найдете ее в модуле basIsFormOpen). Как видно из кода этой функции, коллекция All Forms является свойством объекта CurrentProject (как и ее собратья All Reports, АП Modules, А1 IDataAccessPages и All Macros).

Хотя свойство Is Loaded и полезно, его применение не всегда является идеальным решением.

Если форма новая и открыта, но еще не сохранена, в коллекции А11 Forms ее не будет, так что функция adhlsFormOpen вернет значение False.

Если вы хотите расширить функцию, чтобы она работала с объектами любых типов, можно использовать как образец функцию adhExists, описанную в предыдущем разделе.

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