Access 2002

Управление видимостью окна


Мы уже отмечали, что поведение свойства Visible объекта Application зависит от значения свойства UserControl. Чтобы не сталкиваться с зтим неудобством, мы включили в класс AccessAutomation методы Show и Hide, использующие функцию Windows API ShowWindow, которая работает всегда. Вот объявление этой функции вместе с парой связанных с ней констант:

В качестве первого параметра функции ShowWindow передается дескриптор окна, а в качестве второго — одна из двух встроенных констант, определяющих выполняемое действие: открытие или закрытие окна.  11.3 приведен код методов Show и Hide.

При использовании Access в качестве сервера автоматизации часто требуется определить, загружен ли файл проекта или базы данных. Такая необходимость возникает, например, перед вызовом метода CloseCurrentDatabase, который может привести к ошибке, если файл не загружен. Однако в объектной модели Access не предусмотрено соответствующего метода или свойства.

По этой причине мы решили включить в класс AccessAutomation свойство IsProjectLoaded, возвращающее значение True, если в Access загружен файл проекта или базы данных. Процедура Property Get этого свойства предназначена для определения имени текущего проекта.  11.4. приведен ее полный код.

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

У вас может сложиться мнение, что проще было бы проверить, не имеет ли свойство CurrentProject объекта Application значение Nothing. К сожалению, этот способ не годится, поскольку Access создает объект даже в том случае, когда ни база данных, ни проект не загружены.

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