Access 2002

Функции CreateObject и GetObject


Мы не рекомендуем пользоваться этой технологией, хотя она и сокращает код на одну строку. Дело в том, что в сложном приложении может быть неочевидно (как, например, здесь), когда именно создается экземпляр класса, а это усложняет отладку приложений. Лучше всегда создавать объекты явно.

Конкретную версию сервера автоматизации (например, «Excel.Application. 10») нельзя указывать с ключевым словом New. Если вам нужен доступ к объектам конкретной версии сервера, пользуйтесь функциями CreateObject и GetObject, описанными в следующем разделе.

CreateObject и GetObject — это функции (а не операторы) VBA, служащие для создания объектов сервера автоматизации. Обе они возвращают указатель на созданный объект, который вам нужно сохранить в объектной переменной. Для объявления этой переменной может использоваться либо универсальный объектный тип Object, либо, если вы включили в проект ссылку на библиотеку типов сервера, — конкретное имя класса объектов сервера. Например:

Функции CreateObject и GetObject необходимы прежде всего для позднего связывания (при работе с серверами автоматизации, не использующими библиотеку типов), но могут применяться и при раннем.

Функция CreateObject принимает строку, которая содержит программный идентификатор (ProglD) серверного класса, описанный в этой главе чуть выше. Она пытается создать указанный объект и в случае неудачи (из-за того, что серверное приложение не установлено или не поддерживает данный тип объектов) генерирует ошибку времени выполнения.

Если вам нужен простой пример автоматизации с поздним связыванием, в котором используется функция CreateObject, создайте процедуру, приведенную  10.3, и выполните ее шаг за шагом.

Вы увидите, что эта процедура делает практически то же самое, что и предыдущие примеры.

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