В VBA не может использовать объект Access.Application - PullRequest
2 голосов
/ 26 июня 2009

Это НЕ работает:

Sub X()
    Dim A As Access.Application
    Set A = CreateObject("Access.Application")
    'Do Stuff
End Sub

Однако, это РАБОТАЕТ:

Sub X()
    Dim A As Object
    Set A = CreateObject("Access.Application")
    'Do Stuff
End Sub

Я знаю, что они делают практически то же самое, но кто-нибудь может сказать мне, как создать объект access.application? Я должен добавить, что у меня есть Crystal Reports 11, и при моем последнем обновлении он может иметь «незарегистрированные» некоторые библиотеки VBA.

(обновление 2009-06-29)

В ответ на первые два вопроса я использую MS Access VBA для управления некоторыми другими файлами Access и Excel. Так как это будет работать только на моей локальной машине, я могу гарантировать, что Access всегда будет установлен. Я также ссылался на «Библиотеку объектов Microsoft Access 11.0» (MSACC.OLB).

Я знаю, что есть способы обойти это, то есть использовать раннее связывание при кодировании и переключаться на позднее связывание при запуске, я просто не понимаю, почему метод раннего связывания вообще не работает на моей машине (конечно, код отлично работает на другой машине с Access).

Ответы [ 3 ]

5 голосов
/ 26 июня 2009

Если вы пишете это в Access, нет необходимости делать это, так как объект Application уже существует для вас. Если вы пишете это в Excel или Word, вам нужно добавить ссылку на библиотеку доступа. Зайдите в Инструменты / Ссылки и найдите Microsoft Access XX Object Library

1 голос
/ 26 октября 2011

Попробуйте обнаружить и восстановить из меню справки в MS Access. Работал идеально для меня.

1 голос
/ 27 июня 2009

Здравствуйте,
Код, который вы говорите, не работает, является допустимым синтаксисом. Какую ошибку вы получаете? Когда это происходит? Вы знаете строку кода, в которой это происходит?

Так же, как примечание, это также допустимый синтаксис:

    Dim accApp As Access.Application
    Set accApp = New Access.Application

Но чтобы быть ясным, синтаксис CreateObject является законным и не является источником проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...